tolower()不工作

Gre*_*lin 1 c tolower

下面的代码片段用于将字符串转换为小写.

int main()
{
    unsigned char s[] = "AbS.d_";

    tolower(s);
    printf("%s\n", s);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我得到的输出为:

AbS.d_
Run Code Online (Sandbox Code Playgroud)

为什么字符串没有被转换?

md5*_*md5 5

tolower将字符类型作为参数,但您使用字符串.您需要遍历您的数组,并调用tolower每个字符.

  • 我认为`tolower`的实施保证是等待的. (7认同)

Roh*_*han 5

tolower 接受 int 并返回降低的 int。

这应该有效:

int i=0;
for(i=0; s[i]; i++)
{
    s[i]=tolower(s[i]);
}
Run Code Online (Sandbox Code Playgroud)