У меня есть строка: "''Start''".
После всех действий над ней, должно получиться: "Start". Т.е удаляются все символы ", а затем все пары символов '' заменяются на "
Удаляю из нее все символы "
result.erase(std::remove(result.begin(), result.end(), '"' ), result.end());
Затем нужно заменить все пары символов '' на "
replace(result.begin(), result.end(), "\'\'", "\"");
Выдает ошибку следующую ошибку:
tools/data_parser.cpp: In function ‘int main(int, const char**)’:
tools/data_parser.cpp:21:52: error: no matching function for call to ‘replace(std::__cxx11::basic_string
Я так понимаю, что std::replace заменяет только один символ на другой. Как заменить пару символов? Компилирую так: g++-5 -std=c++11 cfg_parser.cpp -o cfg_parser
Ответ
Если я вас правильно понял, то вы можете выполнить задачу следующим образом
#include
int main()
{
std::string s( "\"''Start''\"" );
std::cout << '[' << s << ']' << std::endl;
s.erase( std::remove( s.begin(), s.end(), '"' ), s.end() );
for ( std::string::size_type n = 0; ( n = s.find( "''", n ) ) != std::string::npos; ++n )
{
s.replace( n, 2, 1, '"' );
}
std::cout << '[' << s << ']' << std::endl;
}
Программа имеем следующий вывод на консоль:
["''Start''"]
["Start"]
Комментариев нет:
Отправить комментарий