我正在寻找一种方法,仅将用户输入的字符串中的大写字母转换为小写字母。问题是我的条件被忽略,每个字符都被更改,而不仅仅是大写字符。作为记录,我还尝试使用 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/