#include <stdio.h>
int main(){
FILE*fp;
int ch;
int count = 1;
char words[100];
int i=0,j;
fp=fopen("D:\test.txt","r");
ch = getc(fp);
while(ch != EOF)
{if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z'||ch ==' ')
{words[i] = ch;}
else{
words[i]=' ';}
i++;
ch = getc(fp);
}
words[i+1]='\0';
for(j =0;j<=sizeof(words);j++){
if(words[j] == ' '){
count++;}}
printf("这篇英语文章中单词数是%d",count);
fclose(fp);
return 0;}
C语言:读取一个英文文档,统计单词数。结果运行始终为1,出了什么问题吗?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
6条回答 默认 最新
CSDN专家-Time 2021-04-28 12:43关注↵冒号双斜杠去读文件路径,还有,sizeof不能用,用strlen.自己点断点看一下

代码在下面
#include<stdio.h> #include<string> #pragma warning(disable:4996) int main(){ FILE*fp; int ch; int count = 1; char words[100]; int i = 0, j; fp = fopen("D://test.txt", "r"); ch = getc(fp); while (ch != EOF) { if (ch >= 'A'&&ch <= 'Z' || ch >= 'a'&&ch <= 'z' || ch == ' ') { words[i] = ch; } else{ words[i] = ' '; } i++; ch = getc(fp); } words[i + 1] = '\0'; for (j = 0; j <= strlen(words); j++){ if (words[j] == ' '){ count++; } } printf("这篇英语文章中单词数是%d", count); fclose(fp); return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报