本题要求编写程序,对一个以“#”结束的字符串,将其小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出。 输入格式: 输入为一个以“#”结束的字符串(不超过30个字符)。 输出格式: 在一行中输出大小写转换后的结果字符串。 输入样例: Hello World! 123# 输出样例: hELLO wORLD! 123
时间: 2023-11-08 15:24:29 浏览: 62
下面是一份参考代码,可以实现将一个以 # 结束的字符串中的小写字母转换成大写字母,大写字母转换成小写字母,其他字符不变输出:
```c
#include <stdio.h>
int main() {
char str[30];
int i = 0;
while ((str[i] = getchar()) != '#') {
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++;
}
str[i] = '\0';
printf("%s", str);
return 0;
}
```
首先定义一个字符数组 str,用来存放输入的字符串。然后使用 while 循环不断从输入中获取字符,直到遇到字符 '#' 结束。在循环体内,判断当前字符是否为小写字母,如果是,则将其转换成大写字母;如果为大写字母,则将其转换成小写字母。如果不是字母,则不进行转换。最后将转换后的字符串末尾加上字符串的结束标志 '\0',并使用 printf() 函数输出即可。
需要注意的是,在获取字符时,应该使用 getchar() 函数来获取,而不是 scanf() 函数,因为 scanf() 函数会将换行符或空格等非字符键也读入,可能会导致输出结果不正确。
阅读全文