按指定字符分割字符串

baowenbo2011 2011-10-22 04:19:53
在控制台输入一长串字符sentenc,将它先按分号(;无论多少个分号)分成二维数组a,
再按a中的空格(无论多少个空格)分成三围数组b。。。
求大神解决啊 。。。


void main()
{
char sentence[1024];
cin.getline(sentence,1024);
char a[10][128];//最多10条命令
char i=0;
char* tokkenPtr=strtok(sentence,";");
while(tokkenPtr!=NULL&&i<10)
{
strcpy(a[i],tokkenPtr);
cout<<a[i]<<endl;
i++;
tokkenPtr=strtok(NULL,";");
}

tokkenPtr=NULL;

char j=0;

char b[10][128][128];
char *c;
i=0;
while (i<128)
{
c=strtok(a[i]," ");
j=0;
while(c!=NULL&&j<128)
{
strcpy(b[i][j],c);
cout<<b[i][j]<<endl;
j++;
c=strtok(NULL," ");
}
i++;
}

return;
}


我这个总是出现内存错误,然后就只能终止运行了。。
...全文
237 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
baowenbo2011 2011-10-23
  • 打赏
  • 举报
回复
楼上各位,
都建议我用string啊 。。
好吧!!!下去慢慢学习学习。。
感谢各位
baowenbo2011 2011-10-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ddlddy 的回复:]
用string呀,
string str;
int i = 0;
i = str.find( ';', i );
str.substr( i , 个数 );

然后就是调试了!
[/Quote]
我表示用string用的蛋疼。。。
下去再仔细研究string吧。现在只想用数组搞定。。。
还是谢谢
turing-complete 2011-10-22
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
strtok
li735937915 2011-10-22
  • 打赏
  • 举报
回复
用 string的substr()方法 截取最好
紫冰枫 2011-10-22
  • 打赏
  • 举报
回复
同意ls所说
龙哥依旧 2011-10-22
  • 打赏
  • 举报
回复
用string呀,
string str;
int i = 0;
i = str.find( ';', i );
str.substr( i , 个数 );

然后就是调试了!

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧