输入一个字符串,统计字符串中的单词个数c程序设计
时间: 2023-11-13 16:02:35 浏览: 169
以下是一个简单的C程序,可以统计输入字符串中的单词个数:
```c
#include <stdio.h>
int main() {
char str[100];
printf("请输入字符串:");
fgets(str, 100, stdin);
int count = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == ' ' && str[i+1] != ' ') {
count++;
}
}
count++; // 最后一个单词没有空格,需要额外加一次计数
printf("单词个数为:%d\n", count);
return 0;
}
```
该程序使用`fgets()`函数从标准输入中读取字符串,并使用一个循环遍历字符串中的每个字符,如果当前字符是空格且下一个字符不是空格,则将计数器加一。最后需要加一次计数,以统计最后一个单词。
相关问题
设计一个c语言统计输入字符串的单词个数,单词之间用空格分割。
设计一个 C 语言程序来统计输入字符串的单词个数,你可以遵循以下几个步骤:
1. 定义函数 `count_words(char* str)`,这个函数接收一个字符串作为输入参数。
2. 创建一个整型变量 `word_count` 初始化为0,用于记录单词数量。
3. 使用一个 while 循环遍历整个字符串,直到遇到空字符 '\0' 表示字符串结束。
4. 在循环内部,检查当前字符是否为空格。如果是空格,则说明前一串字符是一个完整的单词,将 `word_count` 加1。
5. 如果不是空格,继续读取下一个字符,除非遇到空字符。
6. 在遇到非空格字符且之后也是非空格的情况下,表示当前正在处理一个单词,不需要额外的操作。
7. 循环结束后,由于最后一个单词可能不会以空格结尾,所以需要单独处理一次,然后将 `word_count` 自增1。
8. 函数返回 `word_count`。
下面是一个简单的 C 程序示例实现:
```c
#include <stdio.h>
#include <string.h>
int count_words(char *str) {
int word_count = 0;
int i = 0;
// 跳过开头的空格
while (str[i] == ' ') {
i++;
}
while (str[i]) { // 遍历字符串直到空字符
if (str[i] != ' ') { // 非空格字符
while (str[i] != ' ' && str[i]) { // 找到下一个空格或字符串结束
i++;
}
}
word_count++; // 增加单词计数
i++; // 跳过空格
}
// 检查最后一个单词,如果没有空格则包含到最后
if (str[i - 1] != ' ') {
word_count++;
}
return word_count;
}
int main() {
char input[100];
printf("请输入字符串(以空格分隔单词): ");
fgets(input, sizeof(input), stdin);
int result = count_words(input);
printf("输入字符串中有 %d 个单词。\n", result);
return 0;
}
```
设计一个关于c语言统计输入字符串单词个数,单词之间用空格分隔输出结果。
在C语言中设计一个程序来统计输入字符串中的单词数量,你可以遵循以下步骤:
1. 首先,创建一个函数,比如`count_words(char* input)`,它接受一个指向字符串的指针作为参数。
2. 使用`strlen()`函数获取输入字符串的长度,然后从0开始遍历这个字符串。
3. 初始化一个整数变量`word_count`,用于记录单词数量,初始值设为0。
4. 创建一个临时变量`current_word`,用于存储当前单词。当遇到空格字符(' ')时,检查`current_word`是否为空,如果非空则表示找到了一个完整的单词,将`word_count`加一并清零`current_word`。
5. 如果当前字符不是空格,就将其添加到`current_word`中。遍历完整个字符串后,同样检查`current_word`是否为空,如果不为空,也意味着最后一个单词未结束,这时也需要将`word_count`加一。
6. 返回`word_count`作为最终的结果。
下面是一个简单的示例代码片段:
```c
#include <stdio.h>
#include <string.h>
int count_words(char* input) {
int word_count = 0;
char current_word[100] = "";
for (int i = 0; input[i]; i++) {
if (input[i] == ' ') {
if (strlen(current_word)) {
word_count++;
strcpy(current_word, "");
}
} else {
strncat(current_word, &input[i], 1);
}
}
// 判断最后是否有单词
if (strlen(current_word)) {
word_count++;
}
return word_count;
}
int main() {
char input[100];
printf("Enter a string: ");
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = '\0'; // 移除换行符
int wordCount = count_words(input);
printf("Number of words: %d\n", wordCount);
return 0;
}
```
阅读全文
相关推荐















