У меня есть массив символов:c как разрезать первые x слова строки?
char tmp[2048];
Я хочу, чтобы вырезать из первых х слов ТМП. Я определяю слово как последовательность символов, которая не включает пробелы. Я пытался что-то вроде этого (следует вырезать из первых 3 слов):
sscanf(tmp, "%*s %*s %*s %s", tmp);
Моя проблема в том, что «% s» останавливается на первом пробельных он находит. Я хочу, чтобы новая строка заканчивалась в конце старой строки, а не в первом пробеле.
Я также открыт для других предложений, как вырезать первые x слов строки. Я определяю слово как последовательность символов, которая не содержит пробелов.
Почему бы вам просто не использовать строку 'std :: string', которая позволяет вам делать все это с помощью 2 или 3 строк кода, никаких ошибок, утечек памяти и полной безопасности исключений? Почему вы хотите иметь дело с необработанными динамическими массивами? –
Что такое возвращаемое значение sscanf в вашем коде? sscanf возвращает количество элементов в списке аргументов, которые были заполнены. –
Есть ли причина, по которой вы используете 'sscanf', а не' strcpy' или 'memcpy'? Кажется, вы используете неправильный инструмент для работы. – Julian