Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mister_Trololo
0 / 0 / 0
Регистрация: 23.10.2011
Сообщений: 3
#1

Вставка в строки - C++

21.11.2011, 18:43. Просмотров 481. Ответов 3
Метки нет (Все метки)

Здравствуйте, у меня такой вопрос.

Как правильно вставлять символы(к примеру 4 пробела) в объекты типа string, если к примеру задана строка "aaaaaa\nbbbbbb\ncccc". Если пользоваться итератороми, то он потеряет смысл после первой вставки в строку, то есть следующий код не валиден. Вопрос, как сделать это правильно? спасибо

C++
1
2
3
4
5
6
7
8
9
string str = "0F AB 5D C6 DF E7";
 
for(string::iterator iter = str.begin(); iter != str.end(); ++iter)
{
    if(*iter == '\n')
    {
        str.insert(++iter, 4, ' ');
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2011, 18:43     Вставка в строки
Посмотрите здесь:

Вставка строки в массив. C++
C++ Вставка в строку другой строки, начиная с заданной позиции
Матрицы, Ассемблерная вставка. Всем элементам второй строки присвоить соответствующие элементы последнего столбца C++
вставка C++
C++ Вставка списка.
C++ Вставка строки из текстового файла в код
C++ Вставка ассемблера
C++ Ассемблерная вставка на С++
Слово из строки: вставка, удаление, поиск C++
C++ String и кириллица. Вставка переноса строки после n-ного символа
C++ Вставка новой строки и столбца в матрицу
Преобразовать заданные строки, согласно условию (сортировка и сравнение строк, вставка/удаление символов) C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
21.11.2011, 22:04     Вставка в строки #2
Mister_Trololo, посмотрите сюда
Строки в С++
вам не нужно никаких итераторов. Впрочем ниже код, чтобы было понятней
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string str = "0F AB 5D C6 DF E7";
    cout<<"Input string : "<<str<<endl;
    for(int i = 3,j; i < str.length(); i += (3 + j) )
    for(j = 0; j < 4; j++)
        str.insert(i,1,' ');
    cout<<"Splitiing : "<<str<<endl;
    system("pause");
    return 0;
}
Input string : 0F AB 5D C6 DF E7
Splitiing : 0F AB 5D C6 DF E7
Для продолжения нажмите любую клавишу . . .
Mister_Trololo
0 / 0 / 0
Регистрация: 23.10.2011
Сообщений: 3
21.11.2011, 22:30  [ТС]     Вставка в строки #3
ну это да, но интересно именно поведение при использовании итераторов и алгоритмов
-=ЮрА=-
Заблокирован
Автор FAQ
21.11.2011, 23:48     Вставка в строки #4
Цитата Сообщение от Mister_Trololo Посмотреть сообщение
ну это да, но интересно именно поведение при использовании итераторов и алгоритмов
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    int j;
    string str = "0F AB 5D C6 DF";
    cout<<"Input string : "<<str<<endl;
    for(string::iterator iter = str.begin() + 3; iter <= str.end(); iter += 7)
        str.insert(iter,4,' ');
    cout<<"Splitiing : "<<str<<endl;
    system("pause");
    return 0;
}
Input string : 0F AB 5D C6 DF
Splitiing : 0F AB 5D C6 DF
Для продолжения нажмите любую клавишу . . .
Yandex
Объявления
21.11.2011, 23:48     Вставка в строки
Ответ Создать тему
Опции темы

Текущее время: 03:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru