我想输入文字和特定字符。 之后,我想计算文本中包含的字符数。
我的代码
#include <stdio.h>
#include <stdlib.h>
int counting(char text[], char character);
int main()
{
char text[20];
char character;
int a;
printf("Enter text!\n");
scanf("%s", text);
printf("Enter character!\n");
scanf("%s", character);
a= counting(text, character);
printf("Text contain %d character!\n", a);
}
和计数功能
int counting(char text[], char character)
{
int i=0;
int counter=0;
while(text[i] != '\0')
{
if (text[i]==character)
{
counter++;
}
}
i++;
return counter;
}
错误:
答案 0 :(得分:3)
阅读角色的行必须是:
scanf(" %c", &character);
此外,
scanf("%s", text);
不安全。如果用户输入的字符串长度超过19个字符,您将写入未经授权的内存,这将导致未定义的行为。
使用
scanf("%19s", text);
答案 1 :(得分:2)
在函数int counting(...)
while(text[i] != '\0')
{
if (text[i]==character)
{
counter++;
}
}
i++;
i++
内需要while..loop
。
答案 2 :(得分:0)
你有两个问题。
1)您正在将特定字符作为字符串阅读,因此您必须将scanf("%s", character);
更改为scanf(" %c", character);
2)在函数counting()
i++
中需要处于while循环中,这样就不会进入无限循环。