Как увеличить переменную, когда strstr находит указанную строку
Я хочу, чтобы моя переменная houseTot увеличивалась на единицу каждый раз, когда strstr находит строку с "house" в ней. По сути, я сделал это в своем коде:
struct Owner1_def
{
int totProps;
char type[40];
float monthlyPrice;
float maintenance;
int bedrooms;
int bathrooms;
};
typedef struct Owner1_def Owner1;
int main(void)
{
char *ptr;
int i = 0;
ptr = strstr(database[i].hometype, "house");
for(i = 0; i <= 3; ++i)
{
if (ptr != NULL)
houseTot++;
}
return 0;
}
Но когда программа печатает значение houseTot, оно все еще имеет начальное значение 0. Я не знаю много о strstr, но из того, что я прочитал, это должно работать.
1 ответ
Призыв к strstr()
должны быть перемещены внутри цикла так, чтобы значение сохранялось в database[i].hometype
можно проверить на каждой итерации:
for(i = 0; i <= 3; ++i) {
ptr = strstr(database[i].hometype, "house");
if (ptr != NULL)
houseTot++;
}
Обратите внимание, что опубликованный код не имеет определения для массива struct
s database[]
и struct
при условии, не имеет hometype
поле.