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

Скопировать string из одной строки в другую - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Cамоучитель, посоветуйте http://www.cyberforum.ru/cpp-beginners/thread262747.html
Посоветуйте книгу какую-нибудь по С++ в среде visual studio для начинающих. для совсем начинающих) ну в общем вот и вся проблема) заранее благодарна!
C++ Дано натуральное число. Найти ближайшее простое число 1. Дано натуральное число. Найти ближайшее простое число. 2. Дано 20 пар однозначных чисел. Первое число каждой пары означает количество забитых мячей в матче, второе - пропущенных в той же игре. Определить общее количество очков, набранных командой. Добавлено через 2 часа 39 минут Помогите! Добавлено через 59 минут :wall: http://www.cyberforum.ru/cpp-beginners/thread262736.html
C++ Найти площадь равностороннего треугольника, если известна его стороны
1. Найти площадь равностороннего треугольника, если известна его стороны. 2. Написать программу, которая вычисляет количество населения планеты за год, если задано текущее количество населения, уровень рождаемости (y%) и уровень смертности (y%). 3. Поезд ехал t1 ч со скоростью v1 км / ч, t2 ч со скоростью v2, и t3 ч со скоростью v3. Определить пройденные пути с разной скоростью и полный...
C++ Класс Студент
Задание1 Определите класс «Студент».Методы – перевод на следующий курс, выпуск, отчисление. Задание2 Разработать дружественную классу «Студент» функцию, определяющую знак зодиака, под которой студент родился. (21.03-20.04) Овен (21.04-20.05) Телец
C++ Программа на C++ с использованием шаблона функции. http://www.cyberforum.ru/cpp-beginners/thread262717.html
Нужно написать программу которая считает сумму элементов главной диагонали матрицы. Для подсчета использовать шаблон функции. помогите пожалуйста кому не сложно.
C++ Вычисление сильных компонент орграфа. Алгоритм Габова. Помогите, пожалуйста, найти инфу по этой теме. В интернете никак не могу отыскать, а если и нахожу, то очень мало :wall: Скинте ссылки может на какие-то хорошие книги Заранее спасибо! подробнее

Показать сообщение отдельно
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3802 / 2060 / 526
Регистрация: 18.10.2014
Сообщений: 3,666
29.10.2014, 17:49
(Если копировать надо с n1 до n2 включительно)

C++
1
2
std::string st;
st = h.substr(n1, n2 - n1 + 1);
Или, если хотите

C++
1
2
std::string st;
std::copy(h.begin() + n1, h.begin() + n2 + 1, std::back_inserter(st));
или

C++
1
2
std::string st(n2 - n1 + 1, ' ');
std::copy(h.begin() + n1, h.begin() + n2 + 1, st.begin());
Более того, с определенных пор язык гарантирует, что строка в std::string хранится непрерывно. Поэтому можно и

C++
1
2
std::string st(n2 - n1 + 1, ' ');
h.copy(n1, n2 - n1 + 1, &st[0]);
C++
1
2
std::string st(n2 - n1 + 1, ' ');
std::copy(h.begin() + n1, h.begin() + n2 + 1, &st[0]);
C++
1
2
std::string st(n2 - n1 + 1, ' ');
std::copy(&h[n1], &h[n2] + 1, &st[0]);
Ну и разумеется можно было все сделать еще на этапе инициализации

C++
1
std::string st(h, n1, n2 - n1 + 1);
C++
1
std::string st(h.begin() + n1, h.begin() + n2 + 1);
C++
1
std::string st(&h[n1], &h[n2] + 1);
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru