用C语言 输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
时间: 2023-12-26 18:09:59 浏览: 27
可以使用循环遍历字符串,当遇到空格时,单词计数器加一。需要注意的是,如果字符串开头或结尾有空格,要特殊处理。
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int i, count = 0, len;
printf("请输入一行字符:\n");
gets(str); // 使用 gets 函数读入一行字符
len = strlen(str);
// 遍历字符串,遇到空格时单词计数器加一
for (i = 0; i < len; i++) {
if (str[i] == ' ' && i > 0 && str[i-1] != ' ') {
count++;
}
}
// 如果字符串结尾不是空格,最后一个单词计数器也要加一
if (str[len-1] != ' ') {
count++;
}
printf("单词个数为:%d\n", count);
return 0;
}
```
注意:上述代码中使用了不安全的 `gets` 函数读入一行字符,实际应用中应该使用安全的 `fgets` 函数。
相关问题
用c语言输入一行字符,统计其中有多少个单词,单词之间用空格分隔开
好的,以下是C语言的代码实现:
```c
#include <stdio.h>
int main() {
char str[1000];
int count = 0, i;
printf("请输入一行字符:");
fgets(str, 1000, stdin); // 使用 fgets 函数读取输入的字符串
// 统计单词数量
for (i = 0; str[i] != '\0'; i++) {
if (str[i] == ' ' && str[i-1] != ' ') {
count++;
}
}
if (str[0] != '\0') { // 如果输入的字符串不为空,则单词数量应该加1
count++;
}
printf("单词数量为:%d\n", count);
return 0;
}
```
代码逻辑如下:
1. 使用 `fgets` 函数读取输入的字符串,存储在字符数组 `str` 中;
2. 使用 `for` 循环遍历字符串,每当遇到一个空格时,判断前一个字符是否是空格,如果不是,则说明遇到了一个单词,将单词数量加1;
3. 遍历完整个字符串后,如果输入的字符串不为空,则单词数量应该加1;
4. 最后输出单词数量。
注意,本代码实现中,单词的定义是以空格为分隔符,因此如果输入的字符串中有其他分隔符(如逗号、句号等),则也会被视为一个新的单词。
用C语言输入一行字符,统计其中有多少个单词,单词之间用空格分隔开
下面是统计单词数量的 C 语言代码示例:
```
#include <stdio.h>
#include <string.h>
int main() {
char line[100];
int i, wordCount = 0;
printf("请输入一行字符:");
fgets(line, 100, stdin);
int len = strlen(line);
for (i = 0; i < len; i++) {
if (line[i] == ' ' || line[i] == '\t' || line[i] == '\n') {
wordCount++;
}
}
printf("共有 %d 个单词\n", wordCount + 1);
return 0;
}
```
上面的代码使用了 `fgets` 函数来读取一行字符,然后使用循环遍历字符数组,统计其中有多少个空格,制表符或换行符(这些字符用于分隔单词)。最后,它输出单词数量加 1(因为最后一个单词之后没有空格)。