请教,字符串截取的问题
本人新手,下面代码的目的就是要以“=”分割字符串数组C1中的每个字符串,编译没问题,运行报错,请教是什么问题
char *c1[200]={0};
c1[0]="007=00027=96.86=1=0=6000=";
c1[1]="008=00027=96.86=1=0=6000=";//数字由其他程序传入,个数不固定
char str[2048][50]={0};
for (int num=0; num<50; num++ )
{
if(str[num] == NULL)break;
else
{
strcpy(str[num],c1[num]);
int i=0;
char* slipstr[10];//分割后的字符串数组,保存str分割后的字符串
slipstr[i] = strtok(str[num],"=");
while (1)
{
if (NULL== slipstr[i]) break;
i++;
if (i>=10) break;
slipstr[i]=strtok(NULL,"=");
}
cout<<slipstr[0]<<endl;
cout<<slipstr[1]<<endl;
}//else的括号
}//for的括号
[解决办法]
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
[解决办法]
推荐你个函数 sscanf http://topic.csdn.net/u/20121008/17/e9e69cf0-e93a-4037-8df0-2379f20061b2.html请看下