c语言题目描述 输入一行字符,统计并输出其中有多少个单词,单词之间用空格分隔。 输入 只有一行,保证只包含可见字符,且此行的所有字符数不超过100。 输出 一个整数,表示输入的一行字符中共有多少个单词。 请注意行尾输出换行。 样例输入 I am a program. 样例输出 4
时间: 2024-03-20 16:39:52 浏览: 141
这道题可以使用循环遍历输入的字符,当遇到空格或者回车时,认为当前单词已结束,计数器加1,然后继续遍历下一个单词。最后输出计数器的值即可。
以下是 C 语言的代码实现:
```c
#include <stdio.h>
int main() {
int words = 0; // 初始化单词计数器为0
char c; // 存储当前读入的字符
while ((c = getchar()) != '\n') { // 循环读入字符,直到读到回车为止
if (c == ' ') { // 遇到空格,认为当前单词已结束
words++; // 计数器加1
}
}
words++; // 最后还有一个单词没有统计,需要加1
printf("%d\n", words); // 输出单词计数器的值,并换行
return 0;
}
```
输入样例:
```
I am a program.
```
输出样例:
```
4
```
相关问题
本题目要求用C语言编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。输入格式: 输入给出一行字符。输出格式: 在一行中输出单词个数。
要编写一个C语言程序来统计一行字符中的单词个数,你可以遵循以下步骤:
1. 定义一个计数变量`word_count`初始化为0,用于存储单词的数量。
2. 创建一个指针`current_word`指向当前处理的单词开始位置,并设置为0(表示从第一个字符开始)。
3. 遍历输入的字符串,对于每个字符:
a. 如果遇到空格或字符结束(例如,是字符串结束符'\0'),这意味着找到了一个完整的单词:
- 检查`current_word`是否已经移动过(即是否非零),如果是,则说明找到一个单词,将`word_count`加一。
- 将`current_word`置回下一个字符的位置,以便开始处理下一个单词。
b. 如果不是空格,继续处理下一个字符,更新`current_word`。
4. 循环结束后,检查最后一个单词是否已处理(即`current_word`是否为0),如果不是,也需要将`word_count`加一。
以下是示例C代码实现这个功能:
```c
#include <stdio.h>
#include <string.h>
int count_words(const char* line) {
int word_count = 0;
const char* current_word = line;
while (*current_word != '\0') {
// 检查非空格字符
if (*current_word != ' ') {
// 跳过非空格部分,直到遇到空格或字符串结束
while (*++current_word != ' ' && *current_word != '\0');
}
// 如果到达了字符串结束,跳过检查
if (*current_word == '\0')
break;
// 找到一个单词,增加计数
++word_count;
}
// 最后一个单词也计算在内
if (current_word != line)
++word_count;
return word_count;
}
int main() {
char input[100];
printf("请输入一行字符: ");
fgets(input, sizeof(input), stdin);
// 删除末尾换行符
input[strcspn(input, "\n")] = '\0';
int result = count_words(input);
printf("单词个数: %d\n", result);
return 0;
}
```
本题目要求编写程序,输入一行字符,将每个单词的首字母改为大写后输出。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。 输入格式: 输入给出一行字符。 输出格式: 在一行中输出已输入的字符,其中所有单词的首字母已改为大写。 用C语言写
#include <stdio.h>
#include <ctype.h>
int main()
{
char c, prevc = ' ';
while ((c = getchar()) != '\n') {
if (isalpha(c) && !isalpha(prevc)) {
putchar(toupper(c));
} else {
putchar(c);
}
prevc = c;
}
return 0;
}
阅读全文