关于C中的拆分字符串

huntian8 2009-04-11 11:28:10
请问一个字符串“abc/def@111” 如果把他拆分成 3部分放到3个变量中
“abc” "def" "111"
最好写出全部过程,感激不尽
...全文
83 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
huntian8 2009-04-11
  • 打赏
  • 举报
回复
要根据/ 和@拆分。。。。。啊
ylywyn136 2009-04-11
  • 打赏
  • 举报
回复
char a[]="abc/def@111";
char b[3],c[3],d[3];
int i=0;
int j=0;
while(a[i]!= '\0')
{
if(i<3)
..
else if[a<6]
..
}
ltc_mouse 2009-04-11
  • 打赏
  • 举报
回复
lz忽略我2楼说的sprintf吧,错了~
应该是sscanf,如7楼所示
  • 打赏
  • 举报
回复
万能的sscanf

int main()
{
char str[]="abc/def@111";
char s1[5],s2[5],s3[5];
sscanf(str,"%[^/]/%[^@]@%s",s1,s2,s3);
cout<<s1<<endl;
cout<<s2<<endl;
cout<<s3<<endl;
}
mengde007 2009-04-11
  • 打赏
  • 举报
回复


#include<string>
#include <iostream>
using namespace std;
int main()
{

char a[]="abc/def@111";
char b[3][6]={0};
int m=0;
int i=0;
int j=0;
while(a[m]!='\0')
{
if(a[m]!='/'&&a[m]!='@')
{
b[i][j]=a[m];
m++;
j++;
}
else
{
i++;
m++;
j=0;
}
}
for(i=0;i<3;i++)
for(j=0;j<6;j++)
{
cout<<b[i][j];
}
return 0;
}
morris88 2009-04-11
  • 打赏
  • 举报
回复

char str[]="abc/def@111";
char *a, *b, *c;

a = str;
b = strtok(a, '\/');
c = strtok(b, '\@');
morris88 2009-04-11
  • 打赏
  • 举报
回复
char str[]="abc/def@111"; 
char *a, *b, *c;

a = str;
b = strok(a, '\/');
*b = 0;
++b;
c = strok(b, '\@');
*c = 0;
++c;

// a, b, c


ltc_mouse 2009-04-11
  • 打赏
  • 举报
回复
试试strtok或者sprintf

char a[]="abc/def@111";
char b[8], c[8], d[8];
sprintf(a, "%[^/]/%[^@]@%s", b, c, d);

65,211

社区成员

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

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