|
|||
Участник # 10 Его рост 162 и вес 63.400000Участник # 10 Его рост 162 и вес 63.400000 Исходная строка 10) Рост – 162 см., вес – 63.4кг Первая подстрока 162 см., вес – 63.4кг Вторая подстрока 63.4кг
Заметим, что строка определяется адресом ее нулевого символа. Для всей строки s таким адресом является имя строки s. Число 10 в символьном представлении находится в строке s в самом ее начале. Поэтому аргументом функции atoi является строка s. Число 162 в символьном представлении находится в строке s, начиная с позиции 11. Поэтому аргументом функции atol является подстрока строки s, определяемая адресом &s[11]. Число 63.4 в символьном представлении находится в строке s, начиная с позиции 26. Поэтому аргументом функции atof является подстрока строки s, определяемая адресом &s[26].
1.7 Поиск подстроки в строке
Функция 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; clrscr(); puts("s1?"); gets(s1); puts("s2?"); gets(s2); p=strstr(s1,s2); if(p) { printf("Подстрока '%s'\n начинается в строке: %s\n",s2,s1); printf("символом '%c'\nэтим символом начинается подстрока: %s\n",*p,p); } else puts("NO"); getch(); }
Заметим, что *p – символ в строке s1, с которого начинается s2; p – подстрока, начиная с *p до конца строки s1.
Пример выполнения программы
s1? Скоро ли сессия? Так хочется сдать экзамен по ОАиП! s2? чет Подстрока 'чет' начинается в строке: Скоро ли сессия? Так хочется сдать экзамен по ОАиП! символом 'ч' этим символом начинается подстрока: чется сдать экзамен по ОАиП!
|
|||
|