所以我试图计算特定字符在我的程序中出现的次数。例如,如果我输入 ABCDA,我希望程序打印“There are 2 A's”。我的代码如下:
int main(void)
{
char array[10000];
printf("Enter input: \n");
scanf("%s", array);
printf("Array entered is: %s\n", array);
char A; //variable I want to count
char *k //used just to loop
int a_counter; //number of times A, occurs
fgets(array, sizeof(array), stdin);
A = fgetc(stdin);
a_counter = 0;
for(k = array; *k; k++)
{
if (*k == A)
{
a_counter++;
}
}
printf("Number of A's: %d\n", a_counter);
return 0;
}
在另一个论坛上发现了以下循环,该论坛也尝试计算特定字符,但我似乎无法让我的工作正常工作。我的做法是错误的吗?我也想把这一切都从 main 中去掉,但我也对如何做到这一点感到困惑。我感谢所提供的任何帮助。谢谢。
计数循环的新尝试也不起作用。我摆脱了 fgets,因为它让我感到困惑。
int a_counter = 0;
if (array == 'A')
{
a_counter++;
}
printf("Number of A's: %d\n", a_counter);
在 @bjorn 帮助后尝试。
#include <stdio.h>
int main(void)
{
char array[1000];
printf("Enter input: \n);
scanf("%s", array);
printf("Input is: %s\n", array);
int c,n =0;
while((c = getchar()) != EOF)
if (c = 'A')
n++;
printf("Amount of A's is: %d\n", n);
return 0;
}
最佳答案
KISM - 保持简单,伙计:)对于一项简单的任务来说,你的代码太复杂了。这是一个替代方案,希望能够说明我的意思:
#include <stdio.h>
int main(void)
{
int c, n = 0;
while ((c = getchar()) != EOF)
if (c == 'a')
n++;
printf("Where were %d a characters\n", n);
return 0;
}
关于c - C语言中如何统计某个字符在数组中出现的次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40446615/