1.输入带空格的单词并计算单词个数
#include <stdio.h>
#include <ctype.h>
#include <string.h>
// 计算字符串中单词的个数
int countWords(char *str) {
int wordCount = 0;
int inWord = 0; // 标记是否处于一个单词内部,0 表示不在,1 表示在
// 遍历字符串
for (int i = 0; str[i] != '\0'; i++) {
if (!isspace(str[i])) {
if (!inWord) {
// 如果当前字符不是空格,且之前不在一个单词内部,则单词数加 1
wordCount++;
inWord = 1; // 标记进入一个单词内部
}
} else {
// 如果当前字符是空格,标记离开一个单词内部
inWord = 0;
}
}
return wordCount;
}
int main() {
char input[1000];
// 提示用户输入带空格的字符串
printf("请输入一个带空格的字符串:\n");
// 使用 fgets 函数读取字符串
fgets(input, sizeof(input), stdin);
// 去除 fgets 读取的字符串末尾可能存在的换行符
size_t len = strlen(input);
if (len > 0 && input[len - 1] == '\n') {
input[len - 1] = '\0';
}
// 调用 countWords 函数计算单词个数
int wordCount = countWords(input);
// 输出结果
printf("字符串中单词的个数是:%d\n", wordCount);
return 0;
}
运行结果: