可能重复:
tolower() not working
这是我的代码:
char *ptr=&twod[j][i];
while (*ptr != '\0')
{
tolower(*ptr);
cout<<endl
<<endl
<<endl
<<*ptr;
ptr++;
}
当我讨论上述内容时,大写字母仍保持大写。有人可以向我解释原因吗?
答案 0 :(得分:6)
你需要这样做:
*ptr = tolower(*ptr);
std::tolower
返回小写字母。 不通过引用接受参数,因此无法修改您传递给它的*ptr
。
请阅读the documentation of std::tolower
了解详细信息。
答案 1 :(得分:2)
tolower
不会修改该值,而是返回一个新值。
试试这个:
*ptr = tolower(*ptr);
答案 2 :(得分:1)
tolower
不会改变它的论点。设置变量或打印出操作:
*ptr = tolower(*ptr);
std::cout << *ptr;
// or
std::cout << tolower(*ptr);