C程序查找字符串中子字符串的出现次数

时间:2014-11-30 14:34:13

标签: c string numbers find substring

到目前为止,我的代码存在问题。我研究了stackoverflow的主题并找到了解决方案,但那些似乎不起作用。这是我的代码:

#include <stdio.h>
#include <string.h>

int main() {
    char sentence[1000];
    char word[100];
    int count=0;
    fgets(sentence, 999, stdin);
    fgets(word, 99, stdin);
    int word_len=strlen(word);
    char *p;
    for(p=(char*)sentence; (p=strstr(p, word)); p+=word_len)
    {
        ++count;
    }
    printf("%d", count);
    return 0;
}

但无论如何,无论在句子中找到多少次,它都打印出1。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

更改为

....
fgets(word, 99, stdin);
char *p = strchr(word, '\n');
if(p)
    *p = 0;
int word_len=strlen(word);
for(p=sentence; (p=strstr(p, word)); p+=word_len)
....