用c语言写一个程序要求可以统计一句话里的单词个数
时间: 2024-05-02 08:17:16 浏览: 9
以下是用 C 语言编写的一个简单的程序,可以统计一句话中单词的个数。
```c
#include <stdio.h>
#include <string.h>
#define MAXLEN 1000
int main() {
char str[MAXLEN];
int count = 0, i;
printf("请输入一句话: ");
fgets(str, MAXLEN, stdin); // 从标准输入读取一行字符串
for (i = 0; str[i] != '\0'; i++) {
// 如果当前字符是空格或者换行符,说明前面一个单词已经结束了
// 单词数加一
if (str[i] == ' ' || str[i] == '\n') {
count++;
}
}
// 最后一个单词后面没有空格或者换行符,需要额外加一个单词
if (i > 0 && str[i - 1] != ' ' && str[i - 1] != '\n') {
count++;
}
printf("单词数: %d\n", count);
return 0;
}
```
程序的主要思路是从输入的字符串中逐个字符扫描,每当遇到一个空格或者换行符时,就说明前面一个单词已经结束了,单词数加一。最后需要特别注意的是,如果最后一个单词后面没有空格或者换行符,需要额外加一个单词。
相关问题
c语言统计一句话中的单词个数
以下是一个简单的示例程序,用于统计一句话中的单词个数:
```
#include <stdio.h>
#include <string.h>
int main() {
char sentence[100]; // 声明一个最大长度为100的字符数组
int word_count = 1; // 初始化单词个数为1,因为第一个单词前没有空格
printf("请输入一句话:\n");
fgets(sentence, 100, stdin); // 从标准输入中读取一行字符串
for (int i = 0; i < strlen(sentence); i++) {
if (sentence[i] == ' ') { // 如果遇到空格,说明一个单词结束,单词个数加1
word_count++;
}
}
printf("这句话中共有%d个单词。\n", word_count);
return 0;
}
```
该程序使用了一个字符数组来存储用户输入的一句话,然后遍历该字符串,每当遇到一个空格时,就说明一个单词结束,单词个数加1。最终输出单词个数即可。注意,第一个单词前没有空格,因此需要将单词个数初始化为1。
编写一个c语言可以得出一句话里有几个单词
以下是一个简单的 C 语言程序,可以计算句子中有几个单词:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char sentence[100];
int i, wordCount;
printf("请输入一句话:");
fgets(sentence, 100, stdin);
i = 0;
wordCount = 0;
// 遍历句子中的每个字符
while (sentence[i] != '\0') {
// 如果当前字符是字母,继续向后查找直到找到一个非字母字符
if (isalpha(sentence[i])) {
while (isalpha(sentence[i])) {
i++;
}
wordCount++;
} else {
i++;
}
}
printf("这句话中有 %d 个单词。\n", wordCount);
return 0;
}
```
这个程序中,我们首先使用 `fgets()` 函数从用户输入中读取一句话,然后使用一个 `while` 循环遍历句子中的每个字符。如果当前字符是字母,我们就继续向后查找直到找到一个非字母字符,这个过程可以理解为在一个单词内部移动。一旦我们找到一个非字母字符,说明当前单词结束,我们将单词计数器加 1。最后输出单词计数器的值即可。