Cześć.
Dostałem zadanie, w którym trzeba zamienić sekwencję \r\n na** \n** i odwrotnie. Mogę korzystać jedynie z #include <string>.
Nie wiem gdzie leży błąd, kombinowałem na wszelkie sposoby i niestety nic nie udało mi się wymyśleć.
Czy ostatni else if jest dobrze zapisany? Czy może on wymaga rozbicia r i **n **za pomocą &&.
Czy nie powinienem zapisywać *target++ na dwie linijki? np. ' \\ ' i ' r '
Z góry dziękuje za każdą wskazówkę :)
string do zadania : "peppermint 1001\rbubbles\nballoon\r\ngum"
prawidłowa odpowiedź:** "peppermint 1001\rbubbles\r\nballoon\ngum"**
std::string::iterator function(std::string::const_iterator begin, std::string::const_iterator end, std::string::iterator target) {
while (begin < end) {
if (*begin == '\r') {
*target++ = '\r';
begin++;
}
else if (*begin == '\n') {
*target++ = '\r';
*target++ = '\n';
begin++;
}
else if (*begin == '\r\n') {
*target++ = '\n';
begin ++;
}
else {
*target++ = *begin++;
}
}
return target;
}