当strstr找到指定的字符串时如何增加变量

时间:2017-03-26 03:42:17

标签: c strstr

我希望每次strstr找到一个包含" house"的字符串时,我的变量houseTot递增1。在里面。我在我的代码中基本上完成了这个:

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 个答案:

答案 0 :(得分:0)

应该在循环内移动对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字段。