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