c++ / Проблема с функцией sscanf.

Статус
В этой теме нельзя размещать новые ответы.

Vandal™

Известный
Автор темы
55
4
В общем, следующая проверка не сканирует саму букву "я"(именно нижнего регистра) и то, что после неё.

C++:
if (sscanf(string, "%[^[][%d]: %[^\n]s", pNick, &id, msg) && strcmp(pNick, SF->getSAMP()->getPlayers()->pszLocalPlayerName))
            {
                sprintf(buf, "%s: %s", pNick, msg);
                SF->getSAMP()->getPlayers()->pLocalPlayer->Say(buf);
            }

Входная строка(при ошибке): "Sebastian_Mix[228]: Привет. Я только что крякнул одну прогу"
Форматирование: "Sebastian_Mix: Привет. Я только что кр"

Входная строка(Без ошибок): "Sebastian_Mix[228]: Привет. Я только что зашел в игру"
Форматирование: "Sebastian_Mix: Привет. Я только что зашел в игру"

С остальными буквами, цифрами и прочими символами все в норме. В чем проблема?
 

SR_team

like pancake
BH Team
4,809
6,486
потому что ее код 0xFF, а это когда-то использовалось как конец строки
 

Vandal™

Известный
Автор темы
55
4
потому что ее код 0xFF, а это когда-то использовалось как конец строки
Да, был вариант, что её бинарный код мог совпасть с \n.
Юзай регулярные выражения лучше. Они сложнее немного, но в разы удобнее.
Вот тебе пример. https://ideone.com/1HVJPv
Удобный сайт для проверки регулярок. http://regexr.com
Хорошо . Благодарствую :3
 
Статус
В этой теме нельзя размещать новые ответы.