将令牌放在多维数组中?

时间:2011-09-17 07:55:49

标签: c multidimensional-array

如何将字符串标记为字母并将其放在多维数组中?我收到以下错误“从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 :(得分:0)

我不确定你是否真的想在这里手动复制每个角色。

但你可以这样做:

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 */
}