C语言基础------练习3

  1. 输入带空格的字符串,求单词个数
    1. __ueooe_eui_sjje__ ---->3
    2. syue__jdjd____die_ ---->3
    3. shuue__dju__kk ---->3
    4. 代码实现结果:

C语言基础------练习3_第1张图片

        代码解析:

/*

定义字符数组

char input[100]; // 用于存储输入的字符串
定义一个字符数组 input 用于存储输入的字符串。
初始化变量

int word_count = 0;
int in_word = 0; // 标志位,表示当前是否在单词中
word_count 用于计数单词个数。
in_word 是一个标志位,用于标记当前是否在单词中。
提示用户输入字符串

printf("请输入一个带空格的字符串: ");
fgets(input, sizeof(input), stdin);
使用 fgets 函数从终端读取带空格的字符串。fgets 会读取直到遇到换行符或达到指定的最大长度。
遍历输入字符串

for (int i = 0; input[i] != '\0'; i++) 
{
    if (input[i] != ' ' && input[i] != '\n') 
{
        // 当前字符是非空格字符
        if (!in_word) 
{
            // 如果之前不在单词中,现在进入单词
            word_count++;
            in_word = 1;
        }
    } else {
        // 当前字符是空格或换行符
        in_word = 0;
    }
}
遍历 input 数组中的每个字符:
如果当前字符不是空格 ' ' 且不是换行符 '\n',则检查是否在单词中:
如果不在单词中(in_word 为0),则增加单词计数 word_count,并将 in_word 设置为1。
如果当前字符是空格或换行符,则将 in_word 设置为0,表示不在单词中。
输出单词个数

printf("单词个数: %d\n", word_count);
打印单词个数。
*/

你可能感兴趣的:(c语言)