Положить токены в многомерный массив? - PullRequest
0 голосов
/ 17 сентября 2011

Как вы токенизируете строку и помещаете ее в многомерный массив, буква за буквой?Я получаю следующую ошибку «неверное преобразование из char*' to char».

    void tokens( char *sptr)
{
    int i;
    char *p, tokens[100][16];

    while (p != NULL)
    {
        for ( i = 0; i <= 100; i++)
        {
            for (int j = 0; j <= 16; j++)
            {
                p = strtok (sptr, " ,.-");

                tokens[i][j] = p;

            }
        }
    }
}

1 Ответ

0 голосов
/ 17 сентября 2011

Я не уверен, действительно ли вы хотите скопировать здесь каждый символ вручную.

Но вы можете сделать что-то вроде этого:

int i, j;

for(i = 0; i < 100; i++)
{
    p = strtok(sptr, " ,.-");
    if(p == NULL) break;
    for (j = 0; j < 16; j++)
    {
        tokens[i][j] = p[j];
        if(*p++ == 0) break;
    }
    tokens[i][j] = 0; /* add ending \0 */
}

или проще:

int i, j;

for(i = 0; i < 100; i++)
{
    p = strtok(sptr, " ,.-");
    if(p == NULL) break;
    strcpy(tokens[i], p); /* strncpy would be better */
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...