字符转换
- 题目描述:
- 解法思路:
- 解法代码:
- 运行结果:
题目描述:
输入⼀一个字符串,将字符串中大写字母全部转为小写字母,小写字母转成大写字母,其他字符保持不变。注:字符串的长度小于等于30,其中字符串中包含空格
解法思路:
遍历字符串中的每个字符并对其进行分类处理来解决。具体来说,我们可以使用一个循环来遍历字符串中的每个字符。
1. 对于每个字符,我们检查它是大写字母、小写字母还是其他字符。
2. 如果它是大写字母,我们将其转换为小写字母;
3. 如果它是小写字母,我们将其转换为大写字母;
4. 如果它是其他字符,则不需要进行任何转换。
• 字符串库函数:
1. islower():判断字符是否为小写字母
2. isupper():判断字符是否为大写字母
3. tolower():将字符转换为小写字母
4. toupper():将字符转换为大写字母
解法代码:
//⽅法1:不使⽤库函数
#include <stdio.h>
int main()
{
char buf[31] = { 0 };
//输⼊字符串
scanf("%[^\n]s", buf);
int i = 0;
//遍历字符串
while (buf[i])
{
//判断当前字符是否为⼩写字母
if (buf[i] >= 'a' && buf[i] <= 'z')
buf[i] -= 32;
//判读那当前字符是否为⼤写字母
else if (buf[i] >= 'A' && buf[i] <= 'Z')
buf[i] += 32;
i++;
}
printf("%s\n", buf);
return 0;
}
//⽅法2:使⽤库函数
#include <stdio.h>
#include <ctype.h>
int main()
{
char buf[31] = { 0 };
//输⼊字符串
scanf("%[^\n]s", buf);
int i = 0;
while (buf[i])
{
//判断当前字符是否为⼩写字⺟
if (islower(buf[i]))
buf[i] = toupper(buf[i]);
//判读那当前字符是否为⼤写字⺟
else if (isupper(buf[i]))
buf[i] = tolower(buf[i]);
i++;
}
printf("%s\n", buf);
return 0;
}