为什么要么都转小写,要么都转大写,不能小写转大写,大写转小写?
这得看题目要求,也有小写转大写,大写转小写的,望采纳
if里面是对整个a进行了转换,并不是对单个字符,可以修改为,希望能帮到你:
#include <stdio.h>
#include <string.h>
int main()
{
char a[100];
gets(a)
for (int i = 0; i <= strlen(a); i++) {
if (a[i] != '\0') {
if (a[i] >= 'A' && a[i] <= 'Z') {
a[i] = strlwr(a[i]);
} else if (a[i] >= 'a' && a[i] <= 'z'){
a[i] = strupr(a[i]);
}
}
}
for (int i = 0; i <= strlen(a); i++) {
if (a[i] != '\0') {
printf("%c", a[i]);
}
}
return 0;
}
你循环调用的是整个字符串转大小写的函数啊,当然全部是大写或者小写了
第8行改为a[i] += 32;
第12行改为a[i] -=32;
就行,不需要字符串函数