0

除了第一个字符 ( )之外,我必须复制originalString到。的内容不应更改。newString~originalString

std::string originalString("~myOriginalString");
std::string newString;
…
// expected result: newString is "myOriginalString", originalString is unmodified.
4

6 回答 6

6

只需使用std::string::substr()

string newString(originalString.substr(1));
于 2012-08-23T10:16:13.797 回答
3

一般来说,这种操作可以用迭代器来执行:

string newString(originalString.begin()+1, originalString.end());
于 2012-08-23T10:16:46.227 回答
0

您可以为此使用 c-tor:

string newString(originalString, 1);

于 2012-08-23T10:28:14.273 回答
0

std::string有一个方法,substr(),它就是这样做的。查一下。

于 2012-08-23T10:16:54.730 回答
0

使用substr字符串成员函数:

 newString = originalString.substr(1)
于 2012-08-23T10:17:03.803 回答
0

如果它是 std::string,您可以执行以下操作:

newString = originalString;
newString.replace(0, 1, "");

或者,还有一种方法称为erase

newString = originalString;
newString.erase(0, 1);

基本上,这用空字符串替换了从第 0 个字符开始、长度为 1 的部分。第二种方法不替换,而是直接擦除这部分。

于 2012-08-23T10:17:40.277 回答