将令牌放入多维数组中?

发布于 2024-12-04 19:23:35 字数 421 浏览 1 评论 0原文

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

            }
        }
    }
}

How do you tokenize a string and put it in a mulitdimensional array, letter by letter? Im getting the following error "invalid conversion from char*' tochar".

    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;

            }
        }
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

白衬杉格子梦 2024-12-11 19:23:35

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

但你可以这样做:

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

I'm not sure if you really want to copy each character manually here.

But you could do something like this:

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

or simpler:

int i, j;

for(i = 0; i < 100; i++)
{
    p = strtok(sptr, " ,.-");
    if(p == NULL) break;
    strcpy(tokens[i], p); /* strncpy would be better */
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文