问题是这样的,有一行数据,类似这样:rr空格667887空格456-123321
我用strtok把这行字符串分割成三部分,空格为分割字符:rr,667887,456-123321 并分别打印出来,代码如下,a是这一行字符串的数组
char* token = strtok(a, " ");
while( token != NULL )
{
printf("\n%s ", token );
token = strtok( NULL, " ");
}
现在我已经有rr
667887
456-123321
这三部分,我想把这三部分再存入一个数组中去,比如b,分别存在b[0], b[1], b[2],请问该怎么实现?我有点不太理解,strtok分割后的这三部分是什么形式,string还是字符?
声明一个字符型二维数组,第一维维数是你要存入的字符串数,第二维维数是最长的字条串数+1。然后用strcpy库函数把得到的字符串拷贝进去……追问
#include "stdio.h"
#include "string.h"
int main(void){
char a[]="rr 667887 456-123321",b[4][11],i=0,j;
char* token = strtok(a," ");
while(token != NULL){
strcpy(b[i++],token);
token = strtok(NULL," ");
}
for(j=0;j<i;printf("%s ",b[j++]));
printf("\n");
return 0;
}
能具体点吗,具体的代码怎么实现,给高分
追答都说这么清楚了还要具体代码呀?
//#include "stdafx.h"//If the vc++6.0, with this line.#include "stdio.h"
#include "string.h"
int main(void){
char a[]="rr 667887 456-123321",b[4][11],i=0,j;
char* token = strtok(a," ");
while(token != NULL){
strcpy(b[i++],token);
token = strtok(NULL," ");
}
for(j=0;j<i;printf("%s ",b[j++]));
printf("\n");
return 0;
}
温馨提示:答案为网友推荐,仅供参考