C语言编程题,求助大神解答!
#include <stdio.h>
#include <string.h>
#include<stdlib.h>
#define N 10000
int main()
{
FILE *fp;
int k=0,j=0,count=0;
char str[N];
char s[111][30];
fp=fopen("D:\\dict.txt","r");//以读取的方式打开D盘下,名为dict的文本文件;
while(fgets(str,N,fp)!=NULL)//利用fgets函数将文本中的非空字符全部读取并储存在数组str中
for(int i=0;i<strlen(str);i++)
if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z')
s[k][j++]=str[i];//每个单词储存在二维数组的每一行
else if(str[i]==' ')//遇到空格就换行
{
k++;//行下标
j=0;//列下标
}
else if(str[i]==','||str[i]=='.'||str[i]=='?'||str[i]=='!')
count++;//统计非空格标点字符
printf("单词:%d个\n非空格字符:%d个\n",k+1,count);
for(int i=0;i<=k;i++)//输出每个单词
puts(s[i]);
fclose(fp);
return 0;
}