Я работаю над программой в C для класса, который требует от меня взять строку запроса и разбить ее на последующие фрагменты. Это для учебных целей, поэтому я могу ожидать довольно стандартную линию запросов.Использование strchr() для создания нескольких строк из одной основной строки
Думая о проблеме, я собирался идти через каждый полукокса в линии запроса с какой-то for()
цикл, который создает новую строку, каждый раз, когда он сталкивается с SP
, но мне было интересно, есть ли способ используйте strchr()
, чтобы указать на каждую «часть» строки запроса?
Поскольку запрос строка выглядит method SP request-target SP HTTP-version CRLF
где SP
это единое пространство, есть какой-то способ, которым я мог бы создать функцию, которая использует strchr(request-line, ' ')
создать string
(или char*
или char[ ]
), которые затем ЗАКАНЧИВАЮТСЯ на следующую SP
?
редактировать:
Так что я мог бы сделать что-то вроде
char method = strchr(request-line, ' ');
Но тогда, не будет "метод" быть каждый символ после SP
? Как я могу «подрезать» то, что попадает в мою переменную? Или я совершенно не понимаю, как работает эта функция?
Как вы думаете, strtok() было бы полезно здесь? –
Я не слышал об этом раньше, но это выглядит интересно. Я googling, чтобы найти несколько примеров использования, чем просто справочную страницу, но есть ли у вас какие-нибудь хорошие, которые вы знаете о своей голове? –
@ komali_2 [См. Здесь] (http://en.cppreference.com/w/c/string/byte/strtok) – ameyCU