首先,我对这段代码的目标是:将一个句子放入一个 C 字符串中。遍历句子并查看特定字母出现了多少次。
此代码有些工作但没有给出正确的数字?不知道为什么:
#include <stdio.h>
#include <string.h>
int tracker=0;
int letterCount (char *sentence)
{
int s=strlen(sentence);
int i=0;
for (i=0; i<s; i++){
if (sentence[i]=='h') {
tracker++;
}
}
return tracker;
}
int main(int argc, const char * argv[])
{
char *string="Hi there, what's going on? How's it going?";
letterCount(string);
printf("this sentensce has %i H's", tracker);
return 0;
}
我得到的输出:
this sentensce has 2 H's
不太对。有什么想法吗?
最佳答案
如果你的意思是不区分大小写,这是正确的代码 H:
#include <stdio.h>
#include <string.h>
int tracker=0;
int letterCount (char *sentence)
{
int s=strlen(sentence);
int i=0;
for (i=0; i<s; i++){
if (sentence[i]=='h' || sentence[i]=='H') { //'h' is not the same as 'H'
tracker++;
}
}
return tracker;
}
int main(int argc, const char * argv[])
{
char *string="Hi there, what's going on? How's it going?";
letterCount(string);
printf("this sentensce has %i H's", tracker);
return 0;
}
您刚刚在代码中拼错了小写字母和大写字母。 记住,C 语言是区分大小写的!
关于c - 迭代 C 字符串不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11514152/