本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。 输入格式: 输入给出一行字符。 输出格式: 在一行中输出单词个数。 输入样例: Let's go to room 209.
时间: 2023-12-18 08:10:35 浏览: 68
#include <stdio.h>
#include <stdbool.h>
int main()
{
char c;
bool in_word = false; // 是否在单词中
int count = 0; // 单词计数器
while ((c = getchar()) != '\n') // 读入一行字符,直到遇到换行符
{
if (c == ' ') // 遇到空格
{
in_word = false; // 不在单词中
}
else if (!in_word) // 遇到非空格且不在单词中的字符
{
in_word = true; // 进入单词
count++; // 单词计数器加一
}
}
printf("%d\n", count); // 输出单词个数
return 0;
}
相关问题
用c语言写本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
在C语言中,你可以通过以下几个步骤编写一个程序来统计一行字符中单词的数量:
1. 创建一个函数,如 `count_words`,接收一个指向字符串的指针作为参数。
2. 初始化一个计数器 `word_count` 为0,用于存储单词数量。
3. 使用一个 `while` 循环遍历字符串,条件是还有剩余字符且当前字符不是空格(`!isspace()` 函数用于判断字符是否为空格)。
4. 当遇到空格时,检查从上一次非空格字符到当前位置是否有连续的字符构成一个单词。如果没有,则增加计数器。
5. 如果有单词,继续检查下一个字符,直到再次遇到空格或达到字符串末尾。
6. 循环结束后,因为最后一个单词可能没有遇到空格,所以也需要加1到计数器。
7. 返回 `word_count`。
下面是一个简单的示例实现:
```c
#include <stdio.h>
#include <ctype.h> // 包含 isspace 函数
int count_words(const char* str) {
int word_count = 0;
const char* current = str; // 指向字符串起始位置
while (*current) { // 只要遇到非空字符
if (!isspace(*current)) { // 如果不是空格
// 找到单词的开始
while (*current && !isspace(*current)) {
current++; // 移动到下一个字符
}
// 检查是否存在下一个单词
if (*current) {
current++; // 跳过空格,进入下一个单词
while (*current && isspace(*current)) {
current++; // 跳过空格内的所有空格
}
}
}
word_count++;
}
return word_count;
}
int main() {
char line[100];
fgets(line, sizeof(line), stdin); // 读取一行用户输入
line[strcspn(line, "\n")] = '\0'; // 删除行尾的换行符
int wordCount = count_words(line);
printf("The number of words in the line is: %d\n", wordCount);
return 0;
}
```
c语言本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
以下是C语言实现统计一行字符中单词个数的代码:
```c
#include <stdio.h>
int main() {
char word;
int count = 0, blank = 1;
while (word != '\n') {
scanf("%c", &word);
if (word != ' ' && blank == 1 && word != '\n') {
count++;
blank = 0;
}
if (word == ' ' && blank == 0) {
blank = 1;
}
}
printf("%d", count);
return 0;
}
```
阅读全文