转换为大写
本课属于 Coddy C 学习旅程的“逻辑与流程”单元。第 23 课,共 63 课。
挑战
简单在上一课的文本工具程序基础上,添加转换为大写的功能。你的程序应该:
- 打印:
Enter a sentence:,提示用户输入一个短句(末尾不换行) - 声明一个名为
sentence、包含 200 个元素的字符数组,用于存储输入内容 - 使用
scanf和%s格式说明符读取用户输入的一个单词 - 按以下格式打印存储的单词:
You entered: [word] - 使用
strlen()计算这个单词的字符总数 - 按以下格式打印字符数:
Character count: [count] - 使用
strlen()按以下格式打印长度:Length: [length] - 使用循环遍历单词中的每个字符,并统计元音字母
- 检查每个字符是否为元音字母(a、e、i、o、u),包括小写和大写形式
- 持续累计找到的元音字母数量
- 按以下格式打印元音字母数量:
Vowel count: [count] - 打印
Uppercase:,然后使用循环和toupper()函数将单词中的每个字符转换为大写并打印
请记得包含 <string.h> 头文件,以便使用 strlen() 函数;还要包含 <ctype.h> 头文件,以便使用 toupper() 函数。
关于 toupper():
<ctype.h> 中的 toupper() 函数会将单个字符转换为对应的大写形式。如果字符已经是大写字母,或者不是字母,则会原样返回。
示例:toupper('a') 返回 'A',而 toupper('Z') 返回 'Z'。
你可以在循环中使用它,一次转换一个字符:printf("%c", toupper(sentence[i]));
重要:提示 Enter a sentence: 后面不应换行。请使用 printf("Enter a sentence: ");,不要添加 \n。
你的输出应按以下格式显示结果:
Enter a sentence: You entered: [word]
Character count: [count]
Length: [length]
Vowel count: [count]
Uppercase: [WORD]例如,如果输入为:
Programming你的输出应为:
Enter a sentence: You entered: Programming
Character count: 11
Length: 11
Vowel count: 3
Uppercase: PROGRAMMING这个挑战在上一课的基础上,使用 <ctype.h> 库中的 toupper() 函数添加了转换为大写的功能。你需要使用循环遍历字符串中的每个字符,将其转换为大写,然后打印转换后的结果。
亲手试试
#include <stdio.h>
#include <string.h>
int main() {
printf("Enter a sentence: \n");
char sentence[200];
scanf("%s", sentence);
printf("You entered: %s\n", sentence);
int char_count = strlen(sentence);
printf("Character count: %d\n", char_count);
int length = strlen(sentence);
printf("Length: %d\n", length);
int vowel_count = 0;
for (int i = 0; i < strlen(sentence); 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);
return 0;
}逻辑与流程中的所有课
自己练习: C 在线编译器