0

当我尝试在字符串上使用 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];
    }
}

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

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

4

1 回答 1

3

for循环中有一个错字:

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

应该

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

另外,您的代码丢失了#include <string>

于 2017-01-16T09:43:42.777 回答