У меня возникли проблемы с обработкой строк.
Задача - получить данные от пользователя, используя консоль с несколькими аргументами. напримерпользователь вводит строку в консоли, как показано ниже, например:
1. test 2 a b
2. test 3 a b c
3. test 4 a b c d
После строки «test», «2» решает, сколько строк должно быть впереди. Это должно быть сделано в одном входе с консоли. Как после строки 2 должны быть «a» и «b» или после «3» должны быть «a», «b», «c». Итак, сейчас я просто определяю фиксированные аргументы командной строки, и консоль принимает это количество строковых аргументов, но я хочу, чтобы пользователь решил в командной строке решить, сколько строковых аргументов он должен передать. Подскажите, пожалуйста, как мне выполнить вышеупомянутую задачу?
Примечание. Я не использую библиотеку string.h из C. Существует специальная библиотека для дескриптора строки.
typedef struct S_STRUCT
{
char* str;
uint_16 strLength;
uint_16 bufferLength;
}stringStruct;
//// this creates a shadow copy from old string which is "test"
#define STRING__CREATE_SCOPY(name,oldString,offset)
ant_stringStruct01 name =
{
.str=&(oldString)->str[(offset)],
.strLength=(oldString)->strLength-(offset),
.bufferLength= (oldString)->bufferLength(offset)
}
#define LOGGING_CONSOLE_ARG_CREATE(name,size) uint_32 argPool_ ## name [size][2] = {[0 ... (size-1)][0]=0,[0 ... (size-1)][1]=0,}
///start pos of arg
#define LOGGING_CONSOLE_ARG_S(name,argNumber) argPool_ ## name [argNumber][0]
/// len of Args
#define LOGGING_CONSOLE_ARG_L(name,argNumber) argPool_ ## name [argNumber][1]
main ()
{
char *input = "test"; // basically the input is entered by user during console like "test".` Next step is to compare the user entered string
if(!strncmp(input, "test",4) //
STRING__CREATE_SCOPY(localInput, input, 4); // here it creates a shadow copy from 4th position.
LOGGING_CONSOLE_ARG_CREATE(arg, 2);
int cat = &localInput.str[ANT_LOGGING_CONSOLE_ARG_S_01(arg, 0)])
}
проблема в том, что теперь я могу принимать строковые аргументы после инициализации переменной arg. Но я хочу решить на консоли, сколько аргументов я должен получить от пользователя.