-
2021-05-19 08:25:28
c语言实现读取文件识别单词个数,如果不存在自动创建名字,统计个数后可追加,追加内容#作为追加结束同时会统计个数并打印,如果不继续则可中断本次统计"^"作为结束。
#include
#include
#include //为isspace()提供函数原型
//断言类库文件
#include
//初始化最大可读入字符数
#define LINE_MAX_CHAR 80
//自定义bool类型
#define bool int
#define true 1
#define false 0
//统计文件中单词个数的函数
int countNumber(char *filename) {
//声明文件句柄
FILE *fp ;
fp = fopen(filename,"r");
//断言
assert(fp);
//定义字符变量
char buf[LINE_MAX_CHAR];
//定义个数变量
int numwords = 0;
//定义是否在单词内
bool inword = false;
//定义读入字符变量
char c;
//打印文件标题双换行
printf("This file content : \r\n\r\n");
do {
//通过句柄获取字符
c = fgetc(fp);
//讲读入的字符进行打印,分行输出用户输入的各行字符;
printf("%c",c);
//如果不是空格并且不在单词内并且为英文字符的情况下进行计数,并且设置inword变量为true同时进行字数进行加1操作
if (!isspace(c) && !inword && !( c<64 || c>123 ||(c>91 && c<96) ) ) {
inword = true;
numwords++;
//printf("%d",numwords);
}
//如果为空字符串并且在单词内则标示到达了单词的尾部,同时设置变量为false,进行下一个单词的计数。
if (isspace(c) && inword) {
inword = false;//到达单词的尾部
}
} while(c!=EOF);//当读取的字符不等于EOF文件结束符号时进行继续读入,否则结束。
fclose(fp);
return numwords;
}
int main()
{
//初始化文件句柄,打开可度文件
FILE *fp ;
char ch,flag;
int numwords =0;
char *filename="./test1.txt";
do{
if ((fp = fopen(filename,"a+")) == NULL) {
printf("file cannot be created");
return -1;
}
assert(fp);
//统计当前文件内单词个数
numwords = countNumber(filename);
//打印换行
printf("\r\n\r\n");
//打印单词个数
printf("current total words number : %d\r\n\n",numwords);
printf("insert string to the disk file or not (# means is stop to insert words)\r\n");
//获取命令行输入字符进行文件写入
ch = getchar();
while (ch!='#') {
fputc(ch,fp);
ch=getchar();
}
fclose(fp);
putchar(10);//显示完全字符后进行换行
numwords = countNumber(filename);
//打印换行
printf("\r\n\r\n");
//打印单词个数
printf("total words number : %d\r\n\n",numwords);
printf(" ^ stop all operate insert \r\n");
scanf("%s",&flag);
} while(flag != '^' );
printf("it's over\r\n");
//返回0
return 0;
}
经过多次调试,终于达成前面的要求!
记录一下
更多相关内容 -
使用c语言如何统计单词个数
2021-05-20 08:06:41使用c语言如何统计单词个数发布时间:2020-04...c语言统计单词个数的方法程序不认识单词,但是文章中的单词都是用空格间隔开的,换句话说,单词数=空格数+1。所有,c语言统计单词个数实际上转换成了统计文章中的空格...使用c语言如何统计单词个数
发布时间:2020-04-21 13:58:58
来源:亿速云
阅读:207
作者:小新
使用c语言如何统计单词个数?相信有很多人都不太了解,今天小编为了让大家更加了解Golang,所以给大家总结了以下内容,一起往下看吧。
c语言统计单词个数的方法
程序不认识单词,但是文章中的单词都是用空格间隔开的,换句话说,单词数=空格数+1。
所有,c语言统计单词个数实际上转换成了统计文章中的空格数。
有了这样的问题转换思路,整个问题就简单多了。可以先按照这个思路自己实现,也可以直接看下面的代码实现。#include
int main()
{
printf("输入一行字符:\n");
char ch;
int i,count=0,word=0;
while((ch=getchar())!='\n')
if(ch==' ')
word=0;
else if(word==0)
{
word=1;
count++;
}
printf("总共有 %d 个单词\n",count);
return 0;
}
程序测试:输入一行字符:
I Love China
总共有 3 个单词
输入一行字符:
I Love Xichang College
总共有 4 个单词
以上就是使用c语言如何统计单词个数的简略介绍,当然详细使用上面的不同还得要大家自己使用过才领会。如果想了解更多,欢迎关注亿速云行业资讯频道哦!
-
C语言-统计单词个数
2020-01-04 15:39:41读取输入进来的一个字符串,统计其中单词的个数,由于每个单词字母不一样,长度不一样,所以来依靠识别单词来统计单词数是比较难的,下面观察一个字符串 I am a Chinese 可以发现这个字符串中,有4个单词,有3个...1 算法思想
读取输入进来的一个字符串,统计其中单词的个数,由于每个单词字母不一样,长度不一样,所以来依靠识别单词来统计单词数是比较难的,下面观察一个字符串
Thank you very much
可以发现这个字符串中,有4个单词,有3个空格,实际上统计空格数就可以统计单词数,即
单词数 = 空格数 + 1
,下面给出两个程序实现2 实现1
#include <stdio.h> int main() { char a[100]; int i, in_word, word_num; gets(a); word_num = 0; // 初始化单词个数为0 in_word = 0; // 标记位,标记是否在单词内 for (i = 0; a[i]; i++) { if (a[i] == ' ') { // 检测到空格 in_word = 0; // 设置标记位为不在单词内 } else if (in_word == 0) { // 在单词内 word_num++; // 统计单词个数 in_word = 1; // 设置标记位为在单词内 } } printf("%d", word_num); }
3 实现2
#include <stdio.h> int main() { printf("输入一行字符:\n"); char ch; int i,count=0,word=0; while((ch=getchar())!='\n') { if (ch==' ') { word=0; } else if (word==0) { word=1; count++; } } printf("总共有 %d 个单词\n",count); return 0; }
-
C语言统计一篇英文短文中单词的个数实例代码
2020-12-25 20:47:59//num 用来统计单词的个数 //state 用来记录程序当前是否处于一个单词之中,初值为0,表示不在单词中,值为1,表示正处于在一个单词中 printf("Please input the number of lines for English passage:"); scanf... -
用c语言实现 计算一个字符串中单词的个数
2020-07-29 11:26:42本文给出计算一个字符串中单词的个数的C语言程序,感性趣的朋友可以看看。 -
C语言中统计英文单词的个数
2020-12-10 14:01:26字符串中的非字母字符起分割单词的作用。为了方便代码处理,我们可以把所有非字母字符用一个统一的符号表示,例如,都转换成空格。以输入样例为例,用代码把 I like to read it, read it 100 times! 变成 I like to ...输入样例:
I like to read it, read it 100 times!
字符串中的非字母字符起分割单词的作用。为了方便代码处理,我们可以把所有非字母字符用一个统一的符号表示,例如,都转换成空格。以输入样例为例,用代码把
I like to read it, read it 100 times!
变成
I like to read it read it times
这样,我们能通过“数”字符串中有多少个分割来计算字符串中有多少个单词了。例如,例子中有8处空格(分割),分别位于I、like、to、read、it、read、it times之后。由于句子以分割结束(times后面有一个" "分割),因此句子中有8个单词。
注意
- 多个连续的空格只能算一个分割。因此,在扫描到一个空格’ '的时候,要判断前一个字符是否也是空格" "。注意,字符串的首个字符没有“前一个字符”。
- 如果字符串以分割结束,则单词数 = 分割数。如果字符串以字母结束,则单词数 = 分割数+1
代码展示:
#include<stdio.h> #include<string.h> #include<ctype.h> int main() { int num,i; char str[100]; fgets(str,100,stdin); for(i=0;str[i]!='\0';i++)//将字符串中非字母的字符(数字,标点)变为空格 { if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z') { str[i]=str[i]; } else { str[i]=' '; } } for(i=0;str[i]!='\0';i++) { if(str[i]==' '&&str[i+1]!=' ')// 判断该字符是否为‘ ’且该字符后一个字符是否为‘ ’ { num++; } } if(str[i-1]!=' ')//判断字符串最后是否以字母结尾(因为字符串输入时将最后的回车也输入进去了,所以字符串最后一个一定是'\n') { num++; } printf("%d\n",num); //printf("%d\n",num); return 0; }
-
C语言统计单词数量程序 超详解
2020-03-14 22:50:52/********************************************************************************************************************* ...Description:一个统计单词个数的小程序 1.我们选定一个文本中不常用... -
用C语言来统计文件中单词的个数(C语言笔记)
2021-05-14 14:06:11用C语言来统计文件中单词的个数 #include <stdlib.h> #include <stdio.h> #include <string.h> #include <conio.h> //argc:统计运行程序时命令行参数的个数 //*argv[]:存储每个参数的字符... -
(篇九)C语言统计某个字母的个数、统计各种字符的个数、统计单词的个数
2020-04-05 20:36:10本篇文章主要介绍在C语言中统计某个字母的个数、统计各种字符的个数和统计单词的个数;总之就是计数,-由于C语言中没有直接统计的函数,因此需要我们自己编写函数来循环遍历查找需要统计的元素。 一、统计某个字母的... -
C语言统计关键字的个数的程序
2021-05-21 03:50:27//#include #include #include #define MAXWORD 100//关键字最大的个数struct key //结构体数组,关键字按顺序排列{char *word;int count;} keytab[] = {"auto", 0,"break", 0,"case", 0,"char", 0,"const", 0,... -
C语言:统计单词的长度
2021-04-28 21:57:49输出每个单词的长度(字符的个数),中间以1个空格分隔,最后一个数也有空格 输入样例1: hello world . 输出样例1: 5 5 输入样例2: the car is red. 输出样例2: 3 3 2 3 输入样例3: . 输出样例3:... -
统计单词个数-C语言实现
2020-12-12 19:38:38统计单词个数-C语言实现 问题描述: 统计用户输入的句子中的单词的个数,比如: input: hello world! I am the c. output: 6 程序思想: 设置一个单词计数器:num 设置一个使能变量: numEnable,该使能变量的... -
背单词系统c语言课程设计
2021-07-23 19:23:03(1)输入记录模块:用户输入姓名,再输入需要背单词的个数,系统随机从1号文件中读取指定个数的单词中文,显示给用户输入英文,并记录下用户输入正确的个数存入文件。 (2)查询记录模块:可以根据用户姓名,查询... -
C语言编程中统计输入的行数以及单词个数的方法
2020-12-26 06:51:12因此,统计行数等价于统计换行符的个数。 #include /* count lines in input */ main() { int c, nl; nl = 0; while ((c = getchar()) != EOF) if (c == '\n') ++nl; printf("%d\n", nl); } 在该程序中,... -
c语言:统计一段话中单词的个数
2021-06-14 02:09:53大前提:单词用若干空格隔开 小前提:我写的全都是小写字母组成的语句。 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<string.h> #define size 50 int fun(char s[]) { int i = 0, ... -
C语言统计单词个数
2021-05-18 11:49:34Q:输入一串字符串,输出其中有多少个单词。Eg:Good WishesA:#include #include #define SIZE 20int main(){ char str[SIZE]={'\0'}; int count=0;printf("plz input the string\n");gets(str);puts(str); int ... -
【PTA】【C语言】统计一行文本的单词个数
2022-01-12 22:30:13本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。 输入格式: 输入给出一行字符。 输出格式: 在一行中输出单词个数。 输入样例: ... -
单词个数统计———C语言
2021-05-18 11:48:03单词统计这里运用了fgetc:int fgetc(FILE *stream)逐个读取文档中的字符,其中flag 表示前一个字符是否为空,仅前一个字符为空且当前字符不为空时单词个数加1。效果图代码#include int main(int argc,char** argv){... -
统计文本中单词的个数
2021-05-18 15:16:24㈠ 统计一行文本的单词个数:输入一行字符,统计其中单词的个数.个单词之间用空格分隔,空格数可以是多个,代码部分: #includeint main(){int count=0;char temp;bool letter;letter=0;//letter=0为在单词里(单词没... -
C语言统计字符串中字母、数字、空格和其他字符的个数
2020-12-26 21:27:49编写一个函数count,有实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。 要求:(1)定义统计函数count来实现。 函数的原型为:void count(char str... -
C语言统计字符串中单词个数
2021-10-19 07:42:56C语言统计字符串中单词个数 #include <stdio.h> int main( ) { int ri, repeat; int count=0, word=0; char c,oldc; scanf("%d", &repeat); getchar(); for(ri=1; ri<=repeat; ri++) { while... -
C语言 统计文件中各个单词的个数
2021-05-23 02:45:21满意答案小城故事1983推荐于 2017.12.15采纳率:41%等级:12已帮助:8902人你的程序只需要修改两...(2.)你的想法是,如果单词不是重复的单词,就将它存入s2,但这时不能用“=”,应该用strcpy()函数,即,原程序中的s... -
C语言--函数-统计单词个数
2020-03-16 12:01:09以下为统计单词个数的代码(允许有空格) #include<stdio.h> void sum(char a[]) { int word=0,num=0,i; for(i=0;a[i]!='\0';i++) { if(a[i]==' ') { word=0; } else if(word==0) { word=1; num+... -
统计英语单词的个数c语言
2020-12-07 17:08:14英语教研室的老师找到了老师帮忙,老师一看这个题目太简单了,于是就交给了聪明能干的你,已知英语老师已经通过某种手段将英语作文扫描了下来,那么请你准确的统计有多少个字(单词),已知英文短文中只包含英文字母... -
【C语言程序】统计字符串中单词的个数(是单词不是字母)
2022-01-20 21:20:18题出自------------------------------------零基础学C语言 #include<stdio.h> int main() { char a[100]; int word = 1; int i; puts("请输入字符串:"); gets_s(a);/*这里需要使用gets_s()获取字符... -
【C语言程序设计】C语言统计单词个数,单词个数算法
2021-02-24 13:49:57要解决这个问题,最自然的算法是,读取文章的所有内容,然后一个单词一个单词地统计,然而,我们在这里遇到了一个难题:程序看不懂英文,如何知道什么是一个单词,什么不是一个单词呢?似乎在这里遇到了障碍. -
统计“单词”数(C语言)
2020-12-17 17:23:03输入一行字符(不多于80个字符),统计并输出其中的"单词"数,这里所谓"单词"就是由可显示字符组成的一子字符串,"单词"间用一个或多个空格分隔,首"单词"前和末"单词"后,可以有也可以没有空格。 【输入形式】 从键盘... -
C语言实现输入一行字符串,统计其单词的个数
2022-01-01 10:22:20// 统计一行英文字母中所含有的单词的个数: printf("请输入一行英文字符串,统计其单词的个数:"); char ch[]={}; gets(ch); printf("你输入的字符串为:%s\n",ch); int i =0 ,count=0,word=0; for (; ch[i]!... -
C语言实现英文文本词频统计
2020-08-19 12:33:50主要为大家详细介绍了C语言实现英文文本词频统计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下