【发布时间】:2014-12-11 18:23:00
【问题描述】:
我一直在阅读“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)。
我做错了什么?
【问题讨论】:
-
请正确格式化问题并坚持使用您使用的实际语言。谢谢。
-
你能展示一下代码是如何被调用的吗?
-
如果您将“Johnny”作为参数传递,则不需要
gets,只需完全删除该行即可。 -
number=bnumber_of_repeating(word,c);上面输入了单词,上面输入了这样的字符:printf("enter a word"); scanf("%s",word); printf("enter a character"); scanf("%c",&c); -
只要don't ever use
gets(),即使您确实需要获得输入。使用 fgets()` 或其他可以安全使用的东西。