C语言将一维数组s1中的小写字母转换为对应大写字母,大写字母转换为对应小写字母,存储到一维数组s2中 【样例输入】 ab12T 【样例输出】 AB12t
时间: 2024-06-13 12:07:21 浏览: 272
以下是C语言将一维数组s1中的小写字母转换为对应大写字母,大写字母转换为对应小写字母,存储到一维数组s2中的代码实现:
```c
#include <stdio.h>
#include <ctype.h>
int main()
{
char s1[100], s2[100];
int i;
printf("请输入字符串:");
gets(s1);
for (i = 0; s1[i] != '\0'; i++) {
if (islower(s1[i])) {
s2[i] = toupper(s1[i]);
} else if (isupper(s1[i])) {
s2[i] = tolower(s1[i]);
} else {
s2[i] = s1[i];
}
}
s2[i] = '\0';
printf("转换后的字符串为:%s\n", s2);
return 0;
}
```
相关问题
C语言将一维数组s1中的小写字母转换为对应大写字母,大写字母转换为对应小写字母,存储到一维数组s2中
在C语言中,你可以使用ASCII码来实现这个功能。ASCII码规定了小写字母和大写字母之间的相对位置。以下是步骤:
1. 首先,你需要遍历数组`s1`中的每个字符。可以使用for循环,例如:
```c
char s1[] = "Hello, World!";
char s2[ strlen(s1) ]; // 初始化大小与s1相同
for (int i = 0; i < sizeof(s1); i++) {
```
2. 然后检查当前字符是否是字母(区分大小写),如果不是,就直接复制到`s2`:
```c
if ('a' <= s1[i] && s1[i] <= 'z') { // 小写字母转大写
s2[i] = s1[i] - 32;
} else if ('A' <= s1[i] && s1[i] <= 'Z') { // 大写字母转小写
s2[i] = s1[i] + 32;
} else {
s2[i] = s1[i]; // 其他非字母字符不变
}
}
```
3. 最后别忘了结束循环并处理数组的最后一个元素:
```c
}
// 如果数组长度不是奇数,记得在结尾加上 '\0' 或者数组索引减1,以防溢出
if (sizeof(s1) != sizeof(s2)) {
s2[sizeof(s1)] = '\0'; // 如果是字符串
} else {
s2[sizeof(s1) - 1] = '\0'; // 如果是字符数组
}
```
阅读全文