Есть символ С и строки S1, S2. Перед каждым входжением символа С в строку S1 нужно вставить строку S2. Как это сделать?
Вот демонстрационная программа, которая показывает, как это можно сделать.
#include <iostream>
#include <string>
int main()
{
std::string s( "one two three" );
std::string t( "," );
char c = ' ';
std::cout << s << std::endl;
for ( std::string::size_type pos = 0;
( pos = s.find( c, pos ) ) != std::string::npos;
pos += t.size() + sizeof( c ) )
{
s.insert( pos, t );
}
std::cout << s << std::endl;
return 0;
}
Вывод программы на консоль
one two three
one, two, three
Можно предварительно подсчитать, сколько в строке встречается символ в c
, чтобы заранее зарезервировать память в строке s
, а затем выполнить указанный в программе цикл.
Например
#include <iostream>
#include <string>
#include <algorithm>
int main()
{
std::string s( "one two three" );
std::string t( "," );
char c = ' ';
std::cout << s << std::endl;
auto n = std::count( s.begin(), s.end(), c );
s.reserve( s.size() + n * t.size() );
for ( std::string::size_type pos = 0;
( pos = s.find( c, pos ) ) != std::string::npos;
pos += t.size() + sizeof( c ) )
{
s.insert( pos, t );
}
std::cout << s << std::endl;
return 0;
}
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Необходимо написать парсер кода для подсчёта метрики ЧепинаНепонятен алгоритм написания парсера
Написал программу которая берет данные с сайта и выводит их в DataGridView, все работает когда одна формаНо когда я добавил вторую форму, чтобы...
Возникает следующая ошибка при выполнении некоторых проектов в VS 2013/2015