c语言统计单词个数
时间: 2023-07-02 20:04:13 浏览: 87
以下是一个简单的 C 语言程序,可以统计输入文本中的单词数量。
```c
#include <stdio.h>
#include <ctype.h>
int main() {
int count = 0;
char c, prev = ' ';
printf("Enter text: ");
while ((c = getchar()) != '\n') {
if (isspace(c) && !isspace(prev)) {
count++;
}
prev = c;
}
if (!isspace(prev)) {
count++;
}
printf("Word count: %d\n", count);
return 0;
}
```
该程序从标准输入读取一行文本,并使用 isspace() 函数检查字符是否为空格、制表符或换行符。如果当前字符为空格等空白字符,并且上一个字符不是空白字符,则将单词计数器加 1。最后,如果最后一个字符不是空白字符,则再将单词计数器加 1。
相关问题
c语言中统计单词个数
在C语言中统计单词个数,你可以使用标准库函数如`fgets()`读取输入字符串,然后通过分隔符(通常是空格或者换行符)将字符串分割成单个单词。这里有一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
int count_words(char *str) {
int word_count = 0;
while (*str != '\0') { // 遍历字符串直到遇到结束符
if (isspace(*str)) { // 如果遇到空格,增加计数
++word_count;
}
str++; // 移动指针到下一个字符
}
// 最后一个非空格字符也是一个单词,所以需要再加一
if (!isspace(*str - 1)) {
++word_count;
}
return word_count;
}
int main() {
char input[100];
printf("请输入一段文字:");
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = '\0'; // 去除最后的换行符
int word_count = count_words(input);
printf("单词总数:%d\n", word_count);
return 0;
}
```
这个程序会从用户那里获取一行文本,计算其中的单词数,并打印结果。
c语言统计各单词个数
在C语言中,统计文本文件中各个单词的个数通常涉及字符串处理和文件I/O操作。以下是一个简单的步骤和伪代码概述:
1. 打开文件:首先,你需要打开要读取的文本文件,例如使用`fopen()`函数。
2. 逐行读取:遍历文件,可以使用`fgets()`函数一行一行地读取,将每行内容存储在一个字符数组中。
3. 分割单词:对每行内容进行分割,这通常通过查找空格、制表符或换行符来进行。可以创建一个计数器变量来跟踪每个单词的数量。
4. 清理并计数:处理每一组单词,去除标点符号,只保留字母数字字符,并递增对应单词的计数。你可以使用`ctype.h`库的函数帮助清理输入。
5. 关闭文件:完成所有单词计数后,别忘了关闭文件,使用`fclose()`函数。
6. 输出结果:最后,你可以选择直接打印出每个单词及其对应的频率,或者将数据存储到另一个结构体或数组中以便后续处理。
以下是简化的伪代码示例:
```c
#include <stdio.h>
#include <ctype.h>
void count_words(char *file_name) {
int word_count[256] = {0}; // 假设我们考虑ASCII字符
FILE *fp = fopen(file_name, "r");
if (fp == NULL) {
printf("Error opening file.\n");
return;
}
char line[1024];
while (fgets(line, sizeof(line), fp)) {
for (int i = 0; line[i]; ++i) {
if (isalnum(line[i])) { // 检查是否为字母或数字
line[i] = tolower(line[i]); // 转换为小写,忽略大小写差异
++word_count[line[i]];
}
}
line[i] = '\0'; // 结束行
}
fclose(fp);
// 输出或处理单词计数
// ...
}
int main() {
count_words("example.txt");
return 0;
}
```
阅读全文