在C中用字符串中的某些字符大写

-3 c string char

我正在寻找一种方法,只将大写字母转换为用户输入字符串的小写字母.问题是我的条件被忽略了,每个字符都被改变了,而不仅仅是大写字母.为了记录,我还尝试使用atoi将字符转换为int,但遇到了与上面相同的问题.

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

int main()
{
    char letter[100];
    scanf("%s", letter);
    int i;
    for(i=0; letter[i]!='\0'; i++){
        if((letter[i]>='A')||(letter[i]<='Z')){
            letter[i]=letter[i]+32;
        }
    }
    printf("%s", letter);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Hon*_*dar 6

我建议使用的库函数,比如islower(),isupper(),toupper()tolower()这一点.在你的情况下,你可以这样做:

for(i = 0; i < strlen(letter); i++)
{
    letter[i] = tolower(letter[i]);
}
Run Code Online (Sandbox Code Playgroud)