我有个问题。
我想做一个计算一个句子中元音的程序。
为此,我用strlen来计算一个句子中的字母数
但问题是,为什么它只计算第一个词。
我需要一个句子中的字符数来循环程序以查找句子中每个单词的元音。
如何计算一个句子中的所有字符?
我应该使用哪个命令?
我在用C语言
#include <stdio.h>
#include <string.h>
int main()
{
int input;
int repeater;
scanf("%d",&input);
int counter[input];
getchar();
char kalimat[100000];
scanf("%s",kalimat);
for(int i=1;i<=input;i++)
{
counter[i]=0;
}
repeater=strlen(kalimat);
for(int i=1;i<=input;i++)
{
for(int j=i;j<=repeater;j++)
{
if(kalimat[j]=='A'||kalimat[j]=='a'||kalimat[j]=='E'||kalimat[j]=='e'||kalimat[j]=='I'||kalimat[j]=='i'||kalimat[j]=='O'||kalimat[j]=='o'||kalimat[j]=='U'||kalimat[j]=='u')
{
counter[i]++;
}
}
}
最佳答案
scanf
只在第一个空格之前被抓取。您需要向scanf
传递一个接受空白的模式。尝试用"%s"
替换"%[^\n]"
。