Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Поиск подстроки в строке




 

Функция strstr(s1,s2) выполняет поиск подстроки s2 в строке s1 (первого вхождения подстроки s2 в строку s1). Обе строки должны завершаться нуль-символами. В случае успешного поиска функция возвращает указатель на найденную подстроку. В случае неудачи – NULL.

Пример. Определить, содержится ли строка s2 в строке s1 в качестве подстроки.

#include <stdio.h>

#include <string.h>

#include <conio.h>

void main()

{

const int n=81;

char s1[n],s2[n];

char *p;

puts("Введите строку s1");

gets(s1);

puts("Введите строку s2");

gets(s2);

p=strstr(s1,s2);

if(p)

{ printf("Подстрока '%s'\n начинается в строке: \n %s\n",s2,s1);

printf("символом '%c'\nэтим символом начинается

подстрока: %s\n",*p,p);

}

else puts("NO");

getch();

}

Заметим, что *p – символ в строке s1, с которого начинается s2;

p – подстрока, начиная с *p до конца строки s1.

 

Результат выполнения программы:

 

Введите строку s1?

Скоро ли сессия? Так хочется сдать экзамен по ОАиП!

Введите строку s2?

чет

Подстрока 'чет'

начинается в строке:

Скоро ли сессия? Так хочется сдать экзамен по ОАиП!

символом 'ч'

этим символом начинается подстрока:

чется сдать экзамен по ОАиП!

 

Сцепление двух строк (конкатенация)

 

Функция strcat(s1,s2) присоединяет строку s2 в конец строки s1 и возвращает указатель на строку, совпадающий с первым аргументом. При этом сначала из строки s1 удаляется завершающий нуль-символ. В конце новой строки S1 помещается '\0'.

Программист должен сам обеспечить достаточную длину строки s1.

Примеры.

1) char s1[40]="Скоро Новый Год!";

char s2[]="Скоро первая сессия!";

printf(" %s\n",strcat(s1,s2));

Будет получена строка:

Скоро Новый Год! Скоро первая сессия!

2) Вторым параметром является текстовая константа:

char s3[50]="Успешной сдачи";

printf("%s\n\t%s\n",strcat (s3," 1-ой сессии!!!"),s3);

Будет получено две строки:

Успешной сдачи 1-ой сессии!!!

Успешной сдачи 1-ой сессии!!!

 

3) char s4[35]="Успехов и здоровья";

char s5[]=" в Новом Году!";

char *p;

p=strcat(s4, s5);

printf("%s\n%s\n",s4,p);

 

Будет получено две строки:

Успехов и здоровья в Новом Году!

Успехов и здоровья в Новом Году!

Функция strncat(s1,s2,n) присоединяет n символов строки, на начало которой указывает s2, в конец строки, на начало которой указывает s1 и возвращает указатель на строку, совпадающий с первым аргументом. Сформированная строка s1 ограничивается '\0'.



Если n больше длины строки s2, то выполняется простая конкатенация.

Если длина строки s2 меньше n, то все символы s2 присоединяются к строке s1.

 


mylektsii.ru - Мои Лекции - 2015-2019 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал