Member 14050287 Ответов: 4

Знает ли кто-нибудь, как это решить, или, по крайней мере, дает мне представление, как это сделать. Поскольку я совершенно новичок в с.


Напишите приложение ANSI-C для анализа полученных пакетов данных из интерфейса командной строки (CLI).
Один пакет всегда строится следующим образом:
в <сентября>По ресивер на<сентября>У некоторых:сведения и л;Длина&ГТ;&ЛТ;сентября&ГТ;в <сентября&ГТ;ОК&ЛТ;сентября&ГТ;
тогда как <sep> В качестве разделителя ключевых слов будет \r\n.
Входная строка может содержать несколько пакетов, но максимально допустимый входной сигнал составляет 1024 байта (весь вход CLI, ВКЛ. ключевые).
Сначала приложение считывает входную длину, например 197, из CLI, а затем считывает 197 байт из CLI. Эти 197 байт могут содержать несколько закодированных пакетов, ни одного или даже неполных.Ввод
197 \r\nRCV\r\nSOME:DATA40\r\n24Ab2bfsdfa46jKjj936100dsasgdfsdf1240s0x\r\nOK\r\n\r\nRCV\r\nSOME:DATA50\r\n24Ab246324400123543gfdsas4sdaasd22231fn67sdff46ngk\r\nOK\r\n\r\nRCV\r\nSOME:DATA0\r\n\r\nOK\r\n

Ожидаемый результат: 3 полных пакета после синтаксического анализа
Пакет 1> размер: 40 данные: 24Ab2bfsdfa46jKjj936100dsasgdfsdf1240s0x Пакет 2> размер: 50 данные: 24Ab246324400123543gfdsas4sdaasd22231fn67sdff46ngk пакет 3> размер: 0 данные:

Что я уже пробовал:

Как я уже сказал, Я новичок в этом деле.поэтому я просто применил strtok но он просто разделил функцию но остальная логика мне все еще не ясна

4 Ответов

Рейтинг:
7

KarstenK

Вам нужно посетить некоторые из них Узнать с учебник чтобы изучить основы языка.

Ваша задача-читать и интерпретировать буфер данных и работать с ним. C имеет собственный тип данных char, в котором так же есть каждый byt. С помощью iteratig об этом вы можете прочитать каждый байт.

char *data =// your data
if( (data[0] == '\r') && (data[1] == '\n')) {
// seperator found
} 
совет: напишите четкий код с функцией и объяснением имен


Рейтинг:
32

Richard MacCutchan

Это ваше задание, поэтому вы должны выполнять эту работу. Если вы действительно не понимаете этого, тогда вам следует поговорить со своим учителем.


Рейтинг:
22

OriginalGriff

Мы не делаем домашнее задание: оно задано не просто так. Она существует для того, чтобы вы думали о том, что вам сказали, и пытались понять это. Он также существует для того, чтобы ваш наставник мог определить области, в которых вы слабы, и сосредоточить больше внимания на корректирующих действиях.

Попробуйте сами, возможно, вы обнаружите, что это не так сложно, как вы думаете!

Если вы столкнетесь с конкретной проблемой, то, пожалуйста, спросите об этом, и мы сделаем все возможное, чтобы помочь. Но мы не собираемся делать все это для вас!


Рейтинг:
2

Patrice T

Цитата:
Как я уже сказал, Я новичок в этом деле.поэтому я просто применил strtok но он просто разделил функцию но остальная логика мне все еще не ясна

То, что вы сделали, для нас тайна, потому что вы ничего не показали.

Вы не показываете никаких попыток решить проблему самостоятельно, у вас нет вопросов, ваше главное усилие-вставить требование, вы просто хотите, чтобы мы сделали вашу домашнюю работу.
Домашние задания-это упрощенные версии тех задач, которые вам придется решать в реальной жизни. цель это обучение и практикующий.

Мы не делаем вашу домашнюю работу.
Домашнее задание не предназначено для проверки ваших навыков просить других людей сделать вашу работу, оно предназначено для того, чтобы заставить вас думать и помочь вашему учителю проверить ваше понимание курсов, которые вы прошли, а также проблем, которые вы испытываете при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по исправлению положения.
Любая ваша неудача поможет вам узнать, что работает, а что нет, это называется "методом проб и ошибок".
Так что попробуйте, перечитайте свои уроки и приступайте к работе. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.

Как программист, ваша задача-создавать алгоритмы это решает конкретные проблемы, и вы не можете полагаться на кого-то другого, чтобы вечно делать это за вас, поэтому есть время, когда вам придется научиться этому. И чем скорее, тем лучше.
Когда вы просто просите решение, это похоже на попытку научиться водить машину, обучая кого-то другого.
Создание алгоритма - это в основном поиск математики и необходимая адаптация к вашей реальной проблеме.