问题
The below code snippet is used to convert a string to lower case.
int main()
{
unsigned char s[] = "AbS.d_";
tolower(s);
printf("%s\n", s);
return 0;
}
I am getting the output as:
AbS.d_
Why the string is not being converted?
回答1:
tolower
takes int and return lowered int.
This should work:
int i=0;
for(i=0; s[i]; i++)
{
s[i]=tolower(s[i]);
}
回答2:
tolower
takes a character type as parameter, but you use a string. You need to run through your array, and call tolower
for each character.
来源:https://stackoverflow.com/questions/12145463/tolower-not-working