Lỗi code chuyển chữ cái hoa và thường

Code của e như này

#include <stdio.h>
#include <conio.h>
#include<string.h>
int main ()
{
  
    printf ("Dien chuoi can chuan hoa: ");
    char s[100];// chuoi bang dau nhap vao
    gets(s);// nhan chuoi tu ban phim
    for(int i=0;i<strlen(s);i++)
    {
        if((s[i]>96 && s[i]<123)) s[i]=s[i]-32;
        if(s[i]>64 && s[i]<91) s[i]=s[i]+32;
    }
    printf("%s",s);
}

Em chay test
INPUT : abcDE
output : abcde
em ko hiểu code e sai chỗ nào

if((s[i]>96 && s[i]<123)) s[i]=s[i]-32;
if(s[i]>64 && s[i]<91) s[i]=s[i]+32;

ví dụ

s[i] = 97;

chạy đến cái if đầu tiên

s[i] = 97 - 32 = 65

chạy vào cái if thứ 2, s[i] > 64 && s[i] < 91 = true

s[i] = 65 + 32 = 97

bạn thấy đấy chạy xong 2 cái if thì nó trở về giá trị ban đầu rồi
h bạn làm sao để nó chỉ nhận 1 cái if ấy

4 Likes

Thank bro
:heart_eyes: :heart_eyes: :heart_eyes: :heart_eyes: :heart_eyes: :heart_eyes: :heart_eyes: :heart_eyes: :heart_eyes: :heart_eyes: :heart_eyes:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?