Green goblin
Green goblin

Reputation: 9996

tolower() not working

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?

Upvotes: 2

Views: 6772

Answers (2)

Rohan
Rohan

Reputation: 53366

tolower takes int and return lowered int.

This should work:

int i=0;
for(i=0; s[i]; i++)
{
    s[i]=tolower(s[i]);
}

Upvotes: 5

md5
md5

Reputation: 23717

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.

Upvotes: 5

Related Questions