最终输出
本课属于 Coddy C 学习旅程的“逻辑与流程”单元。第 24 课,共 63 课。
挑战
简单将你在前几课中编写的所有功能整合到一起,完成文本工具程序,并输出全面的结果。你的程序应当:
- 打印提示,让用户输入一个短句:
Enter a sentence:(末尾不换行:使用printf("Enter a sentence: "),而不是printf("Enter a sentence: \n")) - 声明一个名为
sentence、包含 200 个元素的字符数组,用于存储输入内容 - 使用
scanf和%s格式说明符读取用户输入的单个单词 - 将原始单词存储在另一个字符数组中,以便显示
- 使用
strlen()计算字符总数 - 遍历每个字符,检查它是否与小写或大写元音字母(a、e、i、o、u)中的任意一个匹配,以统计元音数量
- 在循环中使用
toupper()函数将单词转换为大写 - 以清晰、有序的格式显示所有结果,每项信息单独占一行
记得添加用于字符串函数的 <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 在线编译器