#include<stdio.h>
#include<string.h>
int main() {
// 定义一个字符数组,用于存储输入的字符串,长度最大为 101
char let[101];
// 从标准输入读取一个字符串存入 let 数组
scanf("%s", let);
// 获取输入字符串的长度
int k = strlen(let);
for (int i = 0; i < k; i++) {
// 判断字符是否为小写字母
if (let[i] >= 'a' && let[i] <= 'z') {
// 将小写字母转换为大写字母
let[i] = (char)let[i] - 32;
}
// 输出转换后的字符
printf("%c", let[i]);
}
return 0;
}
看看思路:🌝🌝🌝
这段 C 语言代码的主要功能是将输入的字符串中的小写字母转换为大写字母并输出。其思路如下:
一、输入字符串
1. 定义一个字符数组 let[101] ,用于存储用户输入的字符串。这个数组的长度被设定为 101,可以容纳长度不超过 100 个字符的字符串(留一个位置给字符串结束标志'\0')。
2. 使用 scanf("%s", let); 从标准输入读取一个字符串存入 let 数组。
二、计算字符串长度并遍历
1. 通过调用 strlen(let) 函数获取输入字符串的长度,并将其赋值给变量 k 。
2. 使用 for 循环遍历字符串中的每一个字符。循环从 i = 0 开始,一直到 i < k (即遍历完整个字符串)。
三、小写转大写并输出
1. 在循环体内,首先使用条件判断 if (let[i] >= 'a' && let[i] <= 'z') 检查当前字符是否为小写字母。在 ASCII 码表中,小写字母 'a' 到 'z' 是连续的,所以如果一个字符的 ASCII 值在这个范围内,就可以确定它是小写字母。
2. 如果当前字符是小写字母,就将其转换为大写字母。在 ASCII 码中,小写字母与对应的大写字母的差值为 32,所以通过 let[i] = (char)let[i] - 32; 可以将小写字母转换为大写字母。这里使用了强制类型转换 (char) ,确保结果被解释为字符类型。
3. 最后,使用 printf("%c", let[i]); 输出当前字符,无论它是否经过了大小写转换。这样,在循环结束后,整个字符串中的小写字母都被转换为大写字母并输出。