我在C++中使用 tolower() 时遇到问题

I am having trouble using tolower() in C++

本文关键字:遇到 问题 tolower C++ 我在      更新时间:2023-10-16

当我尝试在字符串上使用tolower而不是使字母小写时,程序会将它们转换为随机符号。这是我的代码:

#include <iostream>
#include <locale>
using namespace std;
int main()
{
    string hi= "thTSMSdjNnJlJjnJJKn";
    for (int i=0; i<hi.length(); i++)
    {
        hi[i]+=tolower(hi[i]);
        cout << hi[i];
    }
}

这是输出:Þð╚ã║ã╚È╝▄┤Ï┤È▄┤┤Â▄

它有什么问题?这不是我想用来降低的实际代码,但我只是把它放在一个单独的示例中,所以它更清楚。我也不介意使用上写,但主要是我让字符串中的所有字母都是相同的大小写。

for 循环中有一个拼写错误:

hi[i] += tolower(hi[i]);

应该是

hi[i] = tolower(hi[i]);

此外,您的代码缺少#include <string>