У меня есть эта функция C, которая пытается сказать, содержится ли в строке подстрока.
int sub_string(char parent [1000], char child [1000]){
int i;
i = 0;
int parent_size = (int) strlen(parent);
int child_size = (int) strlen(child);
char tempvar [child_size];
int res;
res = 1;
while(i<(parent_size - child_size + 1) && res != 0){
strncpy(tempvar, parent + i, child_size);
if(strcmp(tempvar, child)==0){
res = 0;
}
i++;
memset(tempvar, 0, child_size);
}
memset(tempvar, 0, sizeof(tempvar));
return res;
}
Теперь странно то, что когда я передаю строку "HOME_DIR = / tmp /" и "HOME_DIR", в первый раз возвращается 0, но после повторного вызова этой функции возвращается 1, чтобы сказать, что не нашел его !!
Я предполагаю, что это проблема памяти, но я не могу сказать, где, я был бы признателен за любую помощь в этом.