Replace() c# / c++之间的差异

Replace() differences between C#/C++

本文关键字:之间 c++ Replace      更新时间:2023-10-16

我一直试图通过转换一些旧的c++控制台应用程序来戒掉自己学习c#的习惯。我知道c#也有类似的string.Replace;然而,我很难让这个方法做它的cpp对应函数所做的事情,这是替换用户输入中的选择字符。

c++

string str;
getline(cin, str);
for (char &i : str){
        replace(str.begin(), str.end(), 'a', '4');
        replace(str.begin(), str.end(), 'A', '4');
                ...
               }
cout << "Translated text: " << str << endl;
}
c#

string str;
str = Console.ReadLine();
foreach (char c in str){
    str.Replace('a','4');
    str.Replace('A', 4');
}
Console.WriteLine("Translated Text: " + str);
}

c#字符串是不可变的,所以任何改变它们的方法都会返回一个新字符串,而不是修改原来的字符串。

str = str.Replace('a','4');
str = str.Replace('A', 4');