C语言 编写程序:对从键盘任意输入的字符串,将其中所有的大写字母改为小写字母,而所有小写字母改为大写字母,其它字符不变。(不调用任何字符串处理函数,包括strlen)
时间: 2024-11-24 09:43:00 浏览: 77
在C语言中,为了实现这个功能,你可以通过遍历输入的字符串,并逐个比较字符的ASCII值来完成转换。以下是步骤和示例代码:
首先,我们需要创建一个函数`swap_case(char* str)`,它接受一个字符指针作为参数,并在原地修改字符串中的字母大小写。
```c
#include <stdio.h>
#include <ctype.h> // 包含ctype.h头文件用于判断字符的ASCII码
void swap_case(char* str) {
while (*str != '\0') { // 遍历直到字符串结束
if (islower(*str)) { // 如果是小写字母
*str = toupper(*str); // 转换为大写
} else if (isupper(*str)) { // 如果是大写字母
*str = tolower(*str); // 转换为小写
}
str++; // 移动到下一个字符
}
}
int main() {
char input[100]; // 假设最多输入99个字符
printf("请输入一个字符串: ");
fgets(input, sizeof(input), stdin); // 读取用户输入,但不包括换行符
input[strlen(input)-1] = '\0'; // 去掉fgets留下的换行符
swap_case(input);
printf("转换后的字符串: %s\n", input);
return 0;
}
```
在这个程序中,我们使用了`ctype.h`库中的`islower()`和`isupper()`函数来判断字符是否为小写或大写字母,`toupper()`和`tolower()`函数来进行大小写的转换。
阅读全文