【问题标题】:A function to replace an element in a string with another element [duplicate]用另一个元素替换字符串中的元素的函数[重复]
【发布时间】:2021-03-30 11:50:35
【问题描述】:

我想用小写字母替换字符串中的所有大写字母,是否有任何函数可以这样做,因为替换函数没有给出任何结果。 这是我的代码..

    for (int i = 0 ; i < string. size() ; i++ )
    {
        if (string[i] >= 65 && string[i] <= 90)
        {
            string.replace(string[i] , 1 ,string[i]+32);
        }
    }

【问题讨论】:

标签: c++ string


【解决方案1】:

另一种选择是使用变换

#include <algorithm>
#include <locale>

int main()
{
  std::transform(string.begin(), string.end(), string.begin(), ::tolower);
}

【讨论】:

    【解决方案2】:

    您应该阅读replace 的文档 - 第一个参数是要替换的子字符串的位置,而不是要替换的字符。

    所以,string.replace(i , 1 ,string[i]+32); 应该可以工作。 就个人而言,我会选择

    for(auto& p : string) p=std::tolower(p);
    

    【讨论】:

    • 您忘记分配较低的结果。
    • @DanM。 Ups,不错的收获。
    猜你喜欢
    • 1970-01-01
    • 2012-02-27
    • 2019-12-18
    • 2021-09-26
    • 2021-05-19
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多