1

可能重复:
tolower() 不工作

这是我的代码:

char *ptr=&twod[j][i];

                 while (*ptr != '\0')
    {
        tolower(*ptr);


        cout<<endl
            <<endl
            <<endl
            <<*ptr;

        ptr++;

    }

当我计算上述内容时,大写字母仍保持为大写。有人可以向我解释为什么吗?

4

3 回答 3

6

你需要这样做:

*ptr = tolower(*ptr);

std::tolower 返回小写。它不接受引用参数因此它不能修改*ptr你传递给它的参数。

阅读文档以std::tolower获取详细信息。

于 2013-01-27T15:07:42.287 回答
2

tolower不修改值,它返回一个新值。

尝试这个:

*ptr = tolower(*ptr);
于 2013-01-27T15:07:47.830 回答
1

tolower不会改变它的论点。设置变量或打印出操作:

*ptr = tolower(*ptr);
std::cout << *ptr;
// or
std::cout << tolower(*ptr);
于 2013-01-27T15:07:54.440 回答