C中字符串中某些字符大写

标签 c string char

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

#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;
}

最佳答案

我建议使用库函数,例如 islower()isupper()toupper()tolower()为此。对于你的情况,你可以这样做:

for(i = 0; i < strlen(letter); i++)
{
    letter[i] = tolower(letter[i]);
}

关于C中字符串中某些字符大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40657692/

相关文章:

c - 指针数组 C - NULL POSITION

java - 计算给定字符串中特殊字符的数量

java - 使数组中的某物移动

c# - 替换多个字符串的更好方法 - C# 中的混淆

javascript - 从 Javascript 中的字符串获取版本号?

c++ - 将字符串文字分配给 char 对象

c - char如何存储两个数字?

objective-c - 如何在osx中​​创建静态库

C 并发程序(连载)

c++ - C 字符串是否保证是数组?