У меня есть файл, в котором каждая строка содержит несколько слов, которые разделены переменным количеством пробельных символов (пробелов и вкладок). Например:Разбор строки в C
do that param1 param2 param3
do this param1
(количество слов в строке заранее неизвестно и неограничен)
Я ищу способ синтаксического анализа такой линии в простом C, так что я У меня есть указатель на строку, содержащую первое слово, указатель на строку, содержащую второе слово, и указатель на строку, содержащую все остальное (то есть - всю строку, за исключением первых двух слов). Идея состоит в том, что строка «остальная часть строки» будет дополнительно проанализирована функцией обратного вызова, определяемой двумя первыми словами).
Получение первых двух слов достаточно просто (простой sscanf
), но я понятия не имею, как получить указатель «остальная часть строки» (как sscanf
останавливается в пробеле, и я не знаю, сколько пробел перед первым словом, а также между первым и вторым словом).
Любая идея будет принята с благодарностью.
Это было так много раз покрыто stackoverflow. Найдите функцию strtok, а также используйте окно поиска на этой странице. – karlphillip
http://stackoverflow.com/questions/2160199/reading-characters-from-a-stream-up-to-whitespace-using-isspace-in-c/2160209#2160209 – karlphillip
Я думал об использовании 'strtok' и 'strcat', но я надеялся, что может быть более элегантное решение. – IgKh