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

时间:2017-01-16 09:26:01

标签: c++ string tolower

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

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

它出了什么问题?这不是我想要使用的实际代码,但我只是把它放在一个单独的例子中,所以它更清楚。我不介意使用鞋面,但主要的是我得到字符串中的所有字母都是相同的情况。

1 个答案:

答案 0 :(得分:3)

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

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

应该是

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

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