Можете объяснить ,что делает for(подробно если можно)
#include <stdio.h>
#include <string.h>
int main()
{
char str1[102], str2[102];
int n, m;
fgets(str1, 101, stdin);
n = strlen(str1) - 1;
str1[n] = '\0';
fgets(str2, 101, stdin);
m = strlen(str2) - 1;
str2[m] = '\0';
char *istr;
for (istr = strstr(str1, str2); istr ; istr = strstr(istr + 1, str2))
printf("Искомая строка начинается с символа %d\n", istr - str1 + 1);
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
for (istr = strstr(str1, str2); // Первоначально находит вхождение str2 в str1,
// сохраняет его в istr
istr ; // Пока такое вхождение имеется (istr != NULL),
// выполняет тело цикла, после чего ...
istr = strstr(istr+1,str2)) // ... ищет новое вхождение, сместившись на 1
// символ от найденного (чтоб не найти уже найденное)
printf("Искомая строка начинается с символа %d\n", istr - str1 + 1); // А это то
// тело цикла, которое выполняется, пока istr != NULL