c语言统计单词个数
时间: 2023-07-02 15:04:22 浏览: 50
以下是一个简单的 C 语言程序,可以统计一个字符串中单词的个数:
```c
#include <stdio.h>
#include <string.h>
int countWords(char str[]) {
int i, count;
count = 1; // 假设字符串中至少有一个单词
for (i = 0; str[i] != '\0'; i++) {
if (str[i] == ' ' || str[i] == '\n' || str[i] == '\t') {
count++;
}
}
return count;
}
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin);
printf("该字符串中单词的个数为 %d\n", countWords(str));
return 0;
}
```
该程序使用了一个计数器变量 `count`,初始值为 1,因为假设字符串中至少有一个单词。然后遍历字符串中的每一个字符,如果遇到空格、换行符或制表符,就将计数器加一。最后返回计数器的值即为字符串中单词的个数。
需要注意的是,上述程序只是对单词个数进行了简单的估算,对于一些特殊情况(例如多个连续空格、标点符号等)可能会出现计数错误。如果需要更加准确的统计,可以使用正则表达式等更为复杂的方法。
相关问题
c语言统计英文句子单词个数
可以使用C语言的字符串处理函数和循环语句来统计英文句子中的单词个数。以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char sentence[1000];
int wordCount = 0;
printf("请输入一个英文句子:\n");
fgets(sentence, sizeof(sentence), stdin); // 从标准输入读取一行字符串
char* token = strtok(sentence, " "); // 使用空格作为分隔符,获取第一个单词
while (token != NULL) {
wordCount++; // 统计单词个数
token = strtok(NULL, " "); // 继续获取下一个单词
}
printf("单词个数为:%d\n", wordCount);
return 0;
}
```
该程序首先使用 `fgets` 函数从标准输入读取一个英文句子,并将其存储在字符数组 `sentence` 中。然后使用 `strtok` 函数将句子按照空格分隔为多个单词,使用循环语句统计单词个数。最后输出单词个数。
c语言统计文件中单词个数
你可以使用C语言中的文件操作函数,例如fopen、fread、fclose等,以及字符串操作函数,如strtok、strcmp和strlen等来实现统计文件中单词个数的功能。以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_WORD_LENGTH 50
int main() {
char filename[100];
printf("请输入文件名:");
scanf("%s", filename);
FILE *fp;
fp = fopen(filename, "r");
if (fp == NULL) {
printf("文件打开失败!\n");
return 1;
}
char line[1000], word[MAX_WORD_LENGTH];
int count = 0;
while (fgets(line, 1000, fp) != NULL) {
char *token = strtok(line, " \t\n\r"); // 按空格、制表符、换行符分割单词
while (token != NULL) {
strcpy(word, token);
if (strlen(word) > 0) {
count++;
}
token = strtok(NULL, " \t\n\r");
}
}
printf("单词个数为:%d\n", count);
fclose(fp);
return 0;
}
```
该程序首先要求用户输入文件名,然后打开文件并逐行读取文件,使用strtok函数将每行文本按照空格、制表符、换行符等分割为单词,然后判断单词长度是否大于0,如果是则累加单词个数。最后输出单词个数并关闭文件。