我一直在阅读“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)。
我做错了什么?
答案 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(),可能是它或您的类型可能是错误的。