Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用迭代器插入字符串的特定部分?(C+;+;)_C++_Iterator - Fatal编程技术网

C++ 使用迭代器插入字符串的特定部分?(C+;+;)

C++ 使用迭代器插入字符串的特定部分?(C+;+;),c++,iterator,C++,Iterator,假设我想在“一”中的空格后面加上“二”。 空格应该是str[3]对吗?因此:在这种情况下,n=3 string str = "one three"; string::iterator it; string add = "two "; for(it=str.begin();it

假设我想在“一”中的空格后面加上“二”。 空格应该是str[3]对吗?因此:在这种情况下,n=3

string str = "one three";
string::iterator it;
string add = "two ";
for(it=str.begin();it
*它允许我访问str[3]处的字符,但我不知道如何从那里添加字符串。谢谢你的帮助。如果有任何内容令人困惑或不清楚,请告诉我使用。或者

for (it=str.begin(); it < str.end(); it++,i++) 
{
  if(i == n) 
  {                   
    // insert string add at current position          
    break;
  } // if at correct position
} // for
或者使用以下更通用的版本,它适用于任何容器(不仅仅是
std::string

您可以使用string类的方法

str.insert(str.begin() + n, add.begin(), add.end());

这似乎与您接受的答案中相当可疑的一段代码有关(您永远不会真正使用这种复杂的方式到达第n个迭代器)。实际上,您需要4<代码>插入
插入迭代器给定的项之前,而不是之后。(要在空格后插入,即空格后的下一个字符之前。)
str.insert(str.begin() + n, add.begin(), add.end());
string str = "one three";
string add = "two ";
str.insert(4,add); // str is now "one two three"
string::iterator it = str.begin() + 4;
str.insert(it, add.begin(), add.end());