【发布时间】:2019-06-10 13:59:21
【问题描述】:
我正在尝试将所有整数放入一个数组中,它们之间有分隔符
我希望看到什么
array[0][0] = 0
array[0][1] = 1
array[1][1] = 2
array[2][1] = 3
array[0][2] = 4
我尝试过重用 token = strtok( str, ";" ) 但它删除了 char "4"
#include <stdio.h>
#include <string.h>
int main()
{
char seps[] = " ,\t\n\r";
char *token;
char str[1000] = "0,1;2;3,4";
int kk=0;
int array[3][10];
token = strtok( str, seps );
while(1){
sscanf(token,"%d",&(array[0][kk]));
printf("Print Token %d\n",array[0][kk]);
//If token has ; move to next place in 1st array
token = strtok( NULL, seps );
kk++;
if (token==NULL)
break;
}
return 0;
}
【问题讨论】:
-
你永远不会寻找分号。
-
@David 最好把循环写成 while(token != NULL){ /* ...*/ kk++;令牌 = strtok( NULL, seps ); }