函数C计算字符串中字母出现的次数

Yas*_*ati -6 c

这是代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int appar(char c[], char x);

int main() {
  char c[] = "hello everyone !";
  int b = appar(c, 'h');
  printf("nbr of h is %d ", b);

  return 0;
}

int appar(char c[], char x) {
  int i = 0, cmpt = 0;
  int q = strlen(c);
  for (i; i < q; i++) {
    if (c[i] == 'x')
      cmpt++;
  }
  return cmpt;
}
Run Code Online (Sandbox Code Playgroud)

我运行并编译程序,但我收到“h 的 nbr 为 0”

我的代码有什么问题?

Bru*_*man 5

更改c[i]=='x'c[i]==x

您想与变量 x 进行比较,而不是与文字字符 'x' 进行比较

  • 详细信息:C 将“x”标识为_字符常量_。C 确实有文字:_字符串文字_ 和_复合文字_,两者都可以获取其地址 - 而“x”则不然。 (3认同)