在c+中修剪字符串+; 你好,我在C++中有一个修剪字符串的问题。它在结尾添加了一些奇怪的字符 绳子
我敢打赌,您正在呼叫在c+中修剪字符串+; 你好,我在C++中有一个修剪字符串的问题。它在结尾添加了一些奇怪的字符 绳子,c++,replace,trim,C++,Replace,Trim,我敢打赌,您正在呼叫subst,而cnew设置为零。您希望这会删除字符,但它不是这样做的。正如它的名字所暗示的那样,它将它们替换为零 那么: string Napis::subst(char cold, char cnew) { assert(cnew != 0); string s = data; replace(s.begin(), s.end(), cold, cnew); return s; // takes back string s with
subst
,而cnew
设置为零。您希望这会删除字符,但它不是这样做的。正如它的名字所暗示的那样,它将它们替换为零
那么:
string Napis::subst(char cold, char cnew) {
assert(cnew != 0);
string s = data;
replace(s.begin(), s.end(), cold, cnew);
return s; // takes back string s with changed sign
}
这个函数是如何调用的?它应该做什么?什么是
数据
?您是如何确定它在字符串末尾添加了奇怪的字符的?返回对您刚刚分配的字符串的引用是一个坏主意-这会使所有权变得非常不清楚。您可能只想返回字符串,然后在本地分配一个字符串(即没有新字符串),以便可以按值返回。
string Napis::subst(char cold, char cnew) {
assert(cnew != 0);
string s = data;
replace(s.begin(), s.end(), cold, cnew);
return s; // takes back string s with changed sign
}