我的文字如下:
String^ txt="hello kitty hello master and You, hello kitty and other";
String^ txtst="hello kitty";
并且只想在文本中替换第一个问候语。
String^ after = spin->Replace(txt,txtst);
替换我所有的琴弦" hello kitty"我只需要一个。
需要帮助:(
答案 0 :(得分:2)
由于内置String::Replace
将替换所有出现的内容,因此我会编写一个帮助方法来替换所有出现的方法。
使用IndexOf
查找字符串的第一个匹配项SubString
以获取字符串左侧和右侧的部分,并将它们与+
连接在一起(由编译器转换为String::Concat
。
String^ ReplaceOne(String^ s, String^ searchFor, String^ replaceWith)
{
int index = s->IndexOf(searchFor);
if (index == -1) return s; // search string was not found.
return s->SubString(0, index) + replaceWith + s->SubString(index + searchFor->Length);
}
答案 1 :(得分:0)
试试这个:
String^ after = spin->Replace(txt,txtst,1);
答案 2 :(得分:-1)
这将用指定的替换字符串替换第一个找到的字符串。
bool replace(std::string& str, const std::string& from, const std::string& to) {
size_t start_pos = str.find(from);
if(start_pos == std::string::npos)
return false;
str.replace(start_pos, from.length(), to);
return true;
}
std::string string("hello $name");
replace(string, "$name", "Somename");