c语言字符串中大写字母变小写,小写变大写(不知道哪里错了)

img

img

有2个错误:
小写字母要减,大写的要加
两个if 并列的话,前一个并大写后一个马上又变回小写。两个if 是 if _ else if 的关系


#include<stdio.h>
#include<string.h>

int main ()
{
    char a[500];
    gets(a);
    for(int i=0; i<strlen(a); i++){
        if (a[i]<='z' && a[i]>='a')
            a[i] -= 32;
        else if (a[i]<='Z' && a[i]>='A')
            a[i] += 32;
    }
    
    puts(a);
    return 0;
}