C语言 将标记放入多维数组中



如何逐个字母标记字符串并将其放入多维数组中?我得到以下错误"从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;
            }
        }
    }
}

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

但是你可以这样做:

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

或简单的:

int i, j;
for(i = 0; i < 100; i++)
{
    p = strtok(sptr, " ,.-");
    if(p == NULL) break;
    strcpy(tokens[i], p); /* strncpy would be better */
}

相关内容

  • 没有找到相关文章

最新更新