Разбор строки в C - PullRequest
       1

Разбор строки в C

0 голосов
/ 16 апреля 2011

У меня есть файл, в котором каждая строка содержит несколько слов, разделенных переменным количеством пробельных символов (пробелы и символы табуляции).Например:

do that param1   param2  param3
do   this   param1

(Количество слов в строке заранее неизвестно и не ограничено)

Я ищу способ разобрать такую ​​строку в простом C,так что у меня будет указатель на строку, содержащую первое слово, указатель на строку, содержащую второе слово, и указатель на строку, содержащую все остальное (то есть - всю строку, кроме первых двух слов).Идея состоит в том, что строка «оставшаяся часть строки» будет дополнительно проанализирована с помощью функции обратного вызова, определяемой первыми двумя словами).

Получение первых двух слов достаточно просто (просто sscanf), но я понятия не имею, как получить указатель «оставшаяся часть строки» (поскольку sscanf останавливается на пробеле, и я не знаю количество пробела перед первым словом и между первым и вторым словом).

Любая идея будет принята с благодарностью.

1 Ответ

2 голосов
/ 16 апреля 2011

Вы можете использовать sscanf для остальной части строки.Вы просто используете преобразование "scanset" вместо преобразования строки:

char word1[256], word2[256], remainder[1024];

sscanf(input_line, "%255s %255s %1023[^\n]", word1, word2, remainder);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...