Menu
CoddyTech

最终输出

本课属于 Coddy C 学习旅程的“逻辑与流程”单元。第 24 课,共 63 课。

challenge icon

挑战

简单

将你在前几课中编写的所有功能整合到一起,完成文本工具程序,并输出全面的结果。你的程序应当:

  1. 打印提示,让用户输入一个短句:Enter a sentence: (末尾不换行:使用 printf("Enter a sentence: "),而不是 printf("Enter a sentence: \n"))
  2. 声明一个名为 sentence、包含 200 个元素的字符数组,用于存储输入内容
  3. 使用 scanf 和 %s 格式说明符读取用户输入的单个单词
  4. 将原始单词存储在另一个字符数组中,以便显示
  5. 使用 strlen() 计算字符总数
  6. 遍历每个字符,检查它是否与小写或大写元音字母(a、e、i、o、u)中的任意一个匹配,以统计元音数量
  7. 在循环中使用 toupper() 函数将单词转换为大写
  8. 以清晰、有序的格式显示所有结果,每项信息单独占一行

记得添加用于字符串函数的 <string.h> 头文件,以及用于字符转换函数的 <ctype.h> 头文件。

输出应严格采用以下格式显示所有结果:

Enter a sentence: Original: [word]
Characters: [count]
Vowels: [count]
Uppercase: [WORD]

重要:提示 Enter a sentence: 后面不能换行。读取输入后,单词 Original:应紧接着显示在同一行。

例如,如果输入为:

Hello

输出应为:

Enter a sentence: Original: Hello
Characters: 5
Vowels: 2
Uppercase: HELLO

这个最终挑战将你在整个项目中开发的文本处理功能整合在一起:输入处理、使用 strlen() 统计字符数量、使用循环和条件语句统计元音,以及使用 toupper() 转换为大写。程序应清晰、有序地呈现文本分析结果摘要。

亲手试试

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main() {
    char sentence[200];
    
    printf("Enter a sentence: ");
    scanf("%s", sentence);
    
    printf("You entered: %s\n", sentence);
    
    int length = strlen(sentence);
    printf("Character count: %d\n", length);
    printf("Length: %d\n", length);
    
    int vowel_count = 0;
    for (int i = 0; i < length; i++) {
        char c = sentence[i];
        if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ||
            c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') {
            vowel_count++;
        }
    }
    printf("Vowel count: %d\n", vowel_count);
    
    printf("Uppercase: ");
    for (int i = 0; i < length; i++) {
        printf("%c", toupper(sentence[i]));
    }
    printf("\n");
    
    return 0;
}

逻辑与流程中的所有课

自己练习: C 在线编译器