计算字符串中相同字母的数量

时间:2014-12-11 18:23:00

标签: c string c-strings

我一直在阅读“C编程语言”,我遇到了这个问题,对于我发送的任何给定字符串,我的输出为0

我的功能如下:

 int number_of_repeating(char *word,char k){
    int b=0,len=0,i;
    gets(word);
    len=strlen(word);
    for(i=0;i<len;i++){
        if(word[i]==k)
        b++;
    }
    return  b;
}

问题

我向他发送了例如:Jhonny和字符n,因此它应该计算单词中n的数量(在这种情况下,输出应为2)。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

#include <stdio.h>
int number_of_repeating(char *word,char k){
    int b=0,len=0,i;
    gets(word); //<------- You need to remove this one because it may overwrite
    len=strlen(word);
    for(i=0;i<len;i++){
        if(word[i]==k)
        b++;
    }
    return  b;
}
int main(void) {
    // your code goes here
    printf("%d",number_of_repeating("johnny",'n'));
    return 0;
}

答案 1 :(得分:0)

如果您传入字符串,则没有理由调用gets(),可能是它或您的类型可能是错误的。