【发布时间】:2022-01-15 10:26:44
【问题描述】:
void substitute(string stringuser, string subs1, string subs2)
{
string vchar;
for (int i = 0; i < stringuser.length(); i++)
{
vchar = stringuser[i];
if (vchar == subs1)
{
newstring+=subs2;
}
else
{
vchar = stringuser[i];
newstring+=vchar;
}
}
}
这是我编写的用另一个字符替换字符串中的字符的代码。但是,它应该适用于 2 个或更多字符,而不仅仅是 1 个。问题是我不知道该怎么做,如果我能在任务中获得任何帮助,我将不胜感激:)
【问题讨论】:
-
分解它。首先编写一个在大字符串中查找子字符串实例的函数。直到你能做到这一点,你才能替换子字符串,所以询问替换没有多大意义。
-
旁注:
stringuser如果要更改它,几乎肯定应该通过引用传递 -
我确实有一个函数可以从给定索引获取子字符串到给定索引:
void substring(string &stringuser, int subsn1, int subsn2) { string vchar; if (subsn2 > stringuser.length()) { subsn2 = stringuser.length(); } for (int i = subsn1 - 1; i < subsn2; i++) { vchar = stringuser[i]; newstring+=vchar; } stringuser = newstring; }我是否也必须将此代码用于替代函数?