在C中计算一个特定的字母?

时间:2013-12-07 22:06:16

标签: 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("\nThe letter A has been used %i times\n", amount);

return 0;
}

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

执行此任务的方法是将字符串的每个字符与所需字符串(本例中为“A”)进行比较的循环,直到找到'\ 0'...在替代strchr中可以用来达到这个目的(只是为了表明一种不同的方法)。

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