У меня есть список символов, L:
{'h','e','l','l','o',' ', ' ',' ', 'm', 'y', ' ', ' ',' ', 'n','a','m','e'};
Я хочу скопировать его в строку. Я хочу сохранить тройные пробелы и получить строку S ниже:
"hello my name"
Я пробовал это:
string S(L.begin(), L.end());
, но он каким-то образом удаляет тройные пробелы и дает мне одиночные пробелы, и S становится: "Привет, меня зовут". Я пробовал повторять один за другим:
string S = "";
for (auto it = L.begin(); it!=L.end(); it++){
S+=*it;
}
Я все еще получаю «привет, мое имя» с одиночными пробелами. Я попытался сохранить список в векторе символов, а затем превратить его в строку, перебирая вектор и возвращаясь в строку один за другим, но по-прежнему игнорирует несколько пробелов. Как мне сказать компьютеру скопировать символы из списка в строку дословно, независимо от того, сколько последовательных пробелов существует. Даже если это просто список пробелов, я бы хотел получить строку пробелов. Любая помощь?
См. Мой код ниже:
int main() {
list<char> L {'h', 'e', 'l', 'l', 'o', ' ', ' ', ' ', 'm', 'y', ' ', ' ', ' ', 'n', 'a', 'm', 'e'};
string S_attempt1(L.begin(), L.end());
string S_attempt2 = "";
for (auto it = L.begin(); it != L.end(); it++){
S_attempt2+=*it;
}
cout << S_attempt1 << endl;
cout << S_attempt2 << endl;
}
Для некоторых строк, которые я получаю, "hello my name"
вместо "hello my name"