Я пытаюсь разбить строку c ++ на несколько подстрок (NUM_LINES), каждая из которых имеет длину CHAR_PER_LINE.
for(int i = 0; i < NUM_LINES; i++) {
lines[i] = totalstring.substr(i*CHAR_PER_LINE,CHAR_PER_LINE);
}
Работает нормально, если в строке нет специального символа.В противном случае substr () возвращает мне строку длиной не более CHAR_PER_LINE, но останавливается прямо перед специальным символом и выходит из цикла.
Любые подсказки?
ок, отредактировать1) Я определенно не достигаю конца своей строки.Если мой totalstring.length () равен 1000 и у меня есть специальный символ в первой строке (это первые символы строки CHAR_PER_LINE (30)), цикл завершается.
2) Специальные символы У меня возникли проблемыНапример, с 'ö' и '-' (длинный)
РЕДАКТИРОВАТЬ 2:
std::string text = "aaaabbbbccccdödd";
std::string line[4];
for(int i = 0; i < 4; i++)
line[i] = text.substr(i*4,4);
for(int i = 0; i < 4; i++)
std::cout << line[i] << "\n";
Этот пример работает.Я получаю «%» для ö.Таким образом, проблема не была в substr ().Сожалею.Я использую Cairo для создания графического интерфейса, и кажется, что мой вывод Cairo вызывает проблемы, а не substr ().