C语言编程题,求助大神解答!

编写程序,已知文件dict.txt中存储一段由若干个单词组成的文本,统计出该段文本中单词的数量及标点符号的数量(分隔单词的空格不算在内)... 编写程序,已知文件dict.txt中存储一段由若干个单词组成的文本,统计出该段文本中单词的数量及标点符号的数量(分隔单词的空格不算在内) 展开
 我来答
小黑哎啊
科技发烧友

2020-06-16 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:1642
采纳率:74%
帮助的人:349万
展开全部

#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;

}

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式