用函数将字符串大小写转换

img

img

为什么要么都转小写,要么都转大写,不能小写转大写,大写转小写?

这得看题目要求,也有小写转大写,大写转小写的,望采纳

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;
就行,不需要字符串函数