Попробуйте это:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
int main()
{
bool isTrue=false;
char str[50];
char sub[50];
int i,j,t;
printf("Hello please enter a string: ");
gets(str);
printf("The substring you want to find: ");
gets(sub);
for(i=0;str[i] != 0; i++)
if(sub[0] == str[i])
for(j=0, t=i; sub[j] != 0; j++, t++){
isTrue=true;
if(sub[j]!=str[t])
isTrue=false;
}
if(isTrue)
printf("The substring found !");
else
printf("No substring");
}
По сути, это ваш код, который вы только что сделали:
for(j=0, t=i; sub[j] != 0; j++, t++){
bool isTrue=true;
Но вы действительно объявили isTrue в начале. Поэтому, когда вы делаете это, вы делаете isTrue только для этого цикла for, который только там изменен, а не после цикла. Просто удалите bool bevore, и он должен работать.