我需要一个快速的便携式功能,可以将字符串转换为小写字母。经过研究,我想出了这个代码,遗憾的是它不起作用。
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
void low_string(string);
int main()
{
string lower = "This is MIX case TEST";
low_string(lower);
cout << lower;
return 0;
}
void low_string(string lower)
{
transform(lower.begin(), lower.end(), lower.begin(), ::tolower);
}
字符串仍然是大写的。我认为它必须与引用传递等做一些事情,但对我不知道的语言是新的。任何帮助表示赞赏。
答案 0 :(得分:2)
您正在按值传递字符串,因此函数中的参数lower
实际上是lower
中参数main
的副本。
将您的代码更改为void low_string(string& lower)
,它应该可以正常工作
答案 1 :(得分:2)
您正在修改字符串的副本,而不是字符串本身。 您应该考虑通过引用传递:
void low_string(string & lower)
{
transform(lower.begin(), lower.end(), lower.begin(), ::tolower);
}