当我尝试对字符串使用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];
}
}
这是输出:Þð╚ã║ã╚È╝▄┤Ï┤È▄┤┤Â▄
它出了什么问题?这不是我想要使用的实际代码,但我只是把它放在一个单独的例子中,所以它更清楚。我不介意使用鞋面,但主要的是我得到字符串中的所有字母都是相同的情况。
答案 0 :(得分:3)
for循环中有一个拼写错误:
hi[i] += tolower(hi[i]);
应该是
hi[i] = tolower(hi[i]);
此外,您的代码缺少#include <string>