C++ 将迭代器存储到字符串中(转换、强制转换、追加?)

C++ 将迭代器存储到字符串中(转换、强制转换、追加?),c++,string,iterator,C++,String,Iterator,我正试图一个字符一个字符地把一个字符串复制到另一个字符中。其目的不是复制整个字符串,而是只复制其中的一部分(稍后我将为此执行一些条件…) 但是我不知道如何使用迭代器 你能帮我吗 std::string str = "Hello world"; std::string tmp; for (std::string::iterator it = str.begin(); it != str.end(); ++it) { tmp.append(*it); // I'd like

我正试图一个字符一个字符地把一个字符串复制到另一个字符中。其目的不是复制整个字符串,而是只复制其中的一部分(稍后我将为此执行一些条件…)

但是我不知道如何使用
迭代器

你能帮我吗

std::string str = "Hello world";
std::string tmp;

for (std::string::iterator it = str.begin(); it != str.end(); ++it)
    {
        tmp.append(*it); // I'd like to do something like this.
    }
您可以尝试以下方法:

std::string str = "Hello world";
std::string tmp;

for (std::string::iterator it = str.begin(); it != str.end(); ++it)
{
    tmp += *it; 
}
cout << tmp;
std::string str=“Hello world”;
std::字符串tmp;
对于(std::string::iterator it=str.begin();it!=str.end();++it)
{
tmp+=*it;
}

cout为什么不使用+运算符连接到字符串,如下所示:

#include <iostream>
#include <sstream>
using namespace std;
int main(void)
{
    string str = "Hello world";
    string tmp = "";

    for (string::iterator it = str.begin(); it != str.end(); ++it)
    {
        tmp+=(*it); // I'd like to do something like this.
    }
    cout << tmp;
    getchar();
    return (0);
}
#包括
#包括
使用名称空间std;
内部主(空)
{
string str=“Hello world”;
字符串tmp=“”;
for(string::iterator it=str.begin();it!=str.end();++it)
{
tmp+=(*it);//我想这样做。
}

谢谢,我找到了另一种方法,但是有点复杂,你的解决方案看起来更好;)我把(*it)存储在一个字符中,然后把字符附加到str中…比你更复杂