Avatar ·

如何在C++中将std::string转换为小写?

大家好!我是C++新手,正在编写一个文本处理小程序。我需要将字符串中的所有字符转换为小写。我知道C语言中有中的tolower()函数,但它只适用于单个字符(int)。如何将其应用于整个std::string字符串? 我尝试编写了这样的循环: ```cpp #include #include #include int main() { std::string str = "Hello World!"; for (int i = 0; i < str.size(); ++i) { str[i] = tolower(str[i]); } std::cout << str << std::endl; return 0; } ``` 代码可以编译,但我不确定这是否正确和安全。也许有更符合习惯的STL方法?我听说过std::transform,但不知道如何与tolower一起使用。另外,tolower接受int而不是char——char的负值会有问题吗(因为char可能是有符号的)? 请告诉我正确且高效的转换方法。