c语言判断单词个数
时间: 2024-10-29 13:03:26 浏览: 60
在C语言中,判断字符串中的单词个数通常需要将输入的字符串分割成单个单词,并计算其中单词的数量。这里是一个简单的示例,它会忽略标点符号并只考虑空格分隔单词:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h> // 包含处理字符类型的功能
// 定义一个函数来统计单词个数
int count_words(char *str) {
int word_count = 0;
int start_index = 0; // 用于记录单词开始位置
for (int i = 0; str[i] != '\0'; i++) { // 遍历字符串
if (isspace(str[i])) { // 如果遇到空格
if (i > start_index) { // 如果不是第一个字符(避免统计空白字符)
word_count++; // 增加单词计数
}
start_index = i + 1; // 更新下一个单词开始的位置
} else if (!ispunct(str[i])) { // 如果遇到非标点字符
// 指定不计入单词个数的字符(例如换行符),这里假设单词由字母、数字或下划线组成
// 如果遇到其他非字母数字字符,在当前单词结束时增加计数
if (word_count > 0) {
word_count++;
}
}
}
// 别忘了检查最后一个单词(在循环外处理)
if (i > start_index && !isspace(str[i]) && !ispunct(str[i])) {
word_count++;
}
return word_count;
}
int main() {
char input[] = "Hello, world! This is a test sentence.";
int word_count = count_words(input);
printf("The string contains %d words.\n", word_count);
return 0;
}
```
阅读全文