用C计算一个特定的字母?

用C计算一个特定的字母?,c,C,我必须制作一个程序来计算字母“a”在字符串中被使用了多少次。所以只有大写字母A 到目前为止,我已经做到了: #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { char s[30]; int amount=0; printf("Enter a string \n"); gets(s); //??? printf("\n

我必须制作一个程序来计算字母“a”在字符串中被使用了多少次。所以只有大写字母A

到目前为止,我已经做到了:

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

int main(int argc, char *argv[]) {

char s[30];
int amount=0;
printf("Enter a string \n");
gets(s);

//???

printf("\nThe letter A has been used %i times\n", amount);

return 0;
}
因为gets会自动为您插入终止\0,所以很简单:

char s[30];
int amount=0;
int i = 0;
printf("Enter a string \n");
gets(s);

for (; s[i] != '\0'; i++) {
    if (s[i] == 'A' || s[i] == 'a') amount++;
}


printf("\nThe letter A has been used %i times\n", amount);

执行此任务的一种方法是使用循环将字符串的每个字符与本例中所需的字符“A”进行比较,直到找到“\0”。。。在替代方案中,strchr可以用来实现这一点,只是为了展示一种不同的方法

  int count = 0;
  char *p=strchr(s,'A');
  while (p!=NULL) {
    count++;
    p=strchr(p+1,'A');
  }

你在构建解决它的逻辑或语法方面有困难吗?希望高级成员会因为这个问题让你经历地狱:更好地展示你的尝试,以及你失败的地方?好的。。。你还记得你刚发布的最后一个问题,我发布了答案吗?请记住,如果[i]='{/*do stuff*/}在这里应用它。@nhgrif所说的,并使用for循环遍历s中的字符。如果你想成为一名优秀的程序员,你需要开始看到你正在解决的问题中的相似之处。这是你刚才回答的问题的变体。。。现在才30分钟……这也行不通:-@squamish请注意我的代码有什么问题。我现在好像在减肥。看起来还好:-也许是因为我,为什么这么复杂,而不仅仅是s[I]=“A”?啊,我实际上和你的建议差不多;谢谢大家的帮助。