реклама на сайте
подробности

 
 
> Парсинг строки.
Jenya7
сообщение Apr 30 2015, 05:25
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Делаю так
Код
uint32_t ParseCommandArguments(char *str, char *com, char arg[4][20])
{
    uint32_t char_idx = 0;
    uint32_t arg_idx = 0;
     while(*str)
    {
        if(*str != 32) //not space
        {
            if(arg_idx==0)  //command
            {
                com[char_idx++] = *str;
             }
            else  //arguments
            {
                arg[arg_idx-1][char_idx++] = *str;
            }
        }
        else  // space
       {
            char_idx = 0;
            arg_idx++;
        }
        str++;
    }
    return arg_idx;
}

и потом
Код
char *str = "run arg1 arg2";
char *command="";
char arguments[4][20];

uint32_t argc = ParseCommandArguments(str, command, arguments);
  
UART_SendString(UART0,command);
UART_SendString(UART0,arguments[0]);
UART_SendString(UART0,arguments[1]);
UART_SendInt(UART0,argc);

когда иду в отладке шаг за шагом вроде все чары попадают куда нужно, но на выходе нулевые строки. что за чудеса?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 03:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01317 секунд с 7
ELECTRONIX ©2004-2016