输入一段字符串,统计其中的英文单词,数字和其他字符的个数
时间: 2024-12-25 10:25:12 浏览: 7
要统计一段字符串中的英文单词、数字和其他字符(包括标点符号)的数量,你可以使用C语言编写一个程序。以下是一个简单的示例,该程序会分割字符串并分别计数每种类型的字符:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int count_words(char *str) {
int word_count = 0;
while (*str != '\0') {
if (isspace(*str)) { // 检查空格或换行符
++word_count; // 如果遇到空格,增加单词计数
}
str++; // 移动指针到下一个字符
}
return word_count + 1; // 包含结束的空格也算作一个单词
}
int count_numbers(char *str) {
int num_count = 0;
for (; *str != '\0'; ++str) {
if (isdigit(*str)) { // 检查是否为数字字符
++num_count;
}
}
return num_count;
}
int count_other_chars(char *str, int len) {
int other_count = 0;
for (int i = 0; i < len; ++i) {
if (!isalnum(*str++) && !isspace(*str)) { // 检查非字母数字和空格的字符
++other_count;
}
}
return other_count;
}
int main() {
char input[100];
printf("Enter a string: ");
fgets(input, sizeof(input), stdin); // 从标准输入读取字符串
input[strcspn(input, "\n")] = '\0'; // 去除末尾的换行符
int words = count_words(input);
int numbers = count_numbers(input);
int other_chars = count_other_chars(input, strlen(input));
printf("Words: %d\n", words);
printf("Numbers: %d\n", numbers);
printf("Other Characters: %d\n", other_chars);
return 0;
}
```
这个程序首先定义了三个辅助函数:`count_words`用于计算单词数,`count_numbers`用于计算数字数,以及`count_other_chars`用于计算其他字符数。然后,在`main`函数中获取用户的输入,调用这些函数并输出结果。
阅读全文