Работа с функцией strstr в языке C
Функция strstr() в языке программирования C предназначена для поиска первого вхождения подстроки в строку. Синтаксис этой функции выглядит следующим образом:
<pre><code class="language-c">
char* strstr(const char* str1, const char* str2);
</code></pre>
Она принимает два параметра: str1 - указатель на строку, в которой осуществляется поиск, и str2 - указатель на подстроку, которую нужно найти. Функция возвращает указатель на начало найденной подстроки в исходной строке или NULL, если подстроку не удалось найти.
Для лучшего понимания работы функции strstr(), рассмотрим несколько примеров кода.
Пример 1:
<pre><code class="language-c">
#include <stdio.h>
#include <string.h>
int main() {
const char* str1 = "Hello, world!";
const char* str2 = "world";
char* result = strstr(str1, str2);
if (result != NULL) {
printf("Найдено: %s\n", result);
} else {
printf("Подстрока не найдена\n");
}
return 0;
}
</code></pre>
В данном примере мы ищем подстроку "world" в строке "Hello, world!". Функция strstr() вернет указатель на первое вхождение этой подстроки в исходную строку. В данном случае будет выведено сообщение "Найдено: world".
Пример 2:
<pre><code class="language-c">
#include <stdio.h>
#include <string.h>
int main() {
const char* str1 = "Hello, world!";
const char* str2 = "abc";
char* result = strstr(str1, str2);
if (result != NULL) {
printf("Найдено: %s\n", result);
} else {
printf("Подстрока не найдена\n");
}
return 0;
}
</code></pre>
В этом примере мы ищем подстроку "abc" в строке "Hello, world!". Поскольку такая подстрока отсутствует, функция strstr() вернет значение NULL. Результат выполнения программы будет следующим: "Подстрока не найдена".
Пример 3:
<pre><code class="language-c">
#include <stdio.h>
#include <string.h>
int main() {
const char* str1 = "Hello, world!";
const char* str2 = "o";
char* result = strstr(str1, str2);
while (result != NULL) {
printf("Найдено: %s\n", result);
result = strstr(result + 1, str2);
}
return 0;
}
</code></pre>
В данном примере мы ищем все вхождения подстроки "o" в строке "Hello, world!". Функция strstr() будет вызываться в цикле до тех пор, пока не найдет все подстроки. На каждой итерации внутри цикла выводится найденная подстрока. Результат выполнения программы будет следующим:
Найдено: o, world!
Найдено: o
Это были примеры использования функции strstr() в языке программирования C. Она является полезным инструментом для работы со строками и позволяет выполнять различные операции, связанные с поиском и манипуляциями с подстроками.