【发布时间】:2013-05-05 11:37:20
【问题描述】:
这是我目前为止的想法。
#include<stdio.h>
main()
{
int w=0, v=0, c=0, cnt=0;
char inp[21]="abcd aeiou hi there", ch;
FILE *read, *write;
write = fopen("D:/wordvowelcharacter.txt", "w");
fprintf(write, "%s", inp);
fclose(write);
read = fopen("D:/wordvowelcharacter.txt", "r");
if (read==NULL)
{
printf("Error opening file");
}
while ((ch=fgetc(read))!=EOF)
{
if (ch!=' ')
{
c++;
}
if (ch=='A'||ch=='a'||ch=='E'||ch=='e'||ch=='I'||ch=='i'||ch=='O'||ch=='o'||ch=='U'||ch=='u')
{
v++;
}
if (ch==' ')
{
w++;
}
}
printf("Character %d Vowel %d Word %d", c, v, w);
}
--代码结束--
最后一个 if 语句是增加字数。我应该在那里放置什么条件?当前条件给了我错误的单词数,即只有空格数。 文件中的文本是: "abcd aeiou 你好"
【问题讨论】:
-
好吧,你总是比单词少 1 个空格,因为最后一个单词可能没有空格。你的计数是多少?
-
在你的 printf 中尝试“w+1”。
-
我会在
ch上做一个switch。 -
另外,有一个“lastCharWasBlank”标志,如果它是假的,只增加“w”。