int main() {
char str[80];
int i = 0;
gets(str);
while (str[i] != '\0') {
if (str[i] >= 'a' && str[i] <= 'z')
str[i] = str[i] + 'A' - 'a';
else if (str[i] >= 'A' && str[i] <= 'Z')
str[i] = str[i] + 'a' - 'A';
i++;
}
printf("%s\n", str);
return 0;
}
这个得看ASCII码表。对计算机而言,所有字符都是一个数字。比如65表示大写的A,97表示小写的a。然后两者相减就可以得到大写字符和小写字符的差值是32,那个大写的B加上32就是小写的b了。
望采纳
因为a-z和A-Z都是26个字母,大小写对应顺序是一致的,所以当字符是小写字符时,str[i] - 'a' 就获得字符在小写字符中的序号,然后再加上'A'就可以得到对应的大写字符了
每一个字符都有对应的ASCLL值,大小写转换其实就是对他的ASCLL值进行加减,从而得到不同字母或大小写转换