如何把“ad#fdsf#fdsadf#gdsg”变成s1[0]="ad";s1[1]=fdsf;s1[2]=.......

jixian 2001-08-14 02:09:20
给个源程序吧
...全文
119 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jixian 2001-08-15
  • 打赏
  • 举报
回复
谢谢ddeng(登登) !
ddeng 2001-08-14
  • 打赏
  • 举报
回复
可以先扫描一下看需要分配多少个...

AnsiString curStr="ad#fdsf#fdsadf#gdsg";
AnsiString *s1;
int len = curStr.Length();
int Count = 0;
for(int i=0; i<len; i++) {
if(curStr[i+1]=='#') {
Count++;
}
}
if(curStr[len]!='#') {
Count++;
}
if(Count>0) {
s1 = new AnsiString[Count];
}
else {
return;
}

int Index = 0;
for(int i=0; i<len; i++) {
if(curStr[i+1]=='#') {
Index++;
}
else {
s1[Index] += curStr[i+1];
}
}

//......

delete []s1;

呵呵,晚了,谁给我多点分啊:)
jixian 2001-08-14
  • 打赏
  • 举报
回复
相信gloom(忧郁的海风) :
给分了
gloom 2001-08-14
  • 打赏
  • 举报
回复
或这样也行
char* s1[4]={"","","",""};
这样不会有边界问题,不会越界,还是直接指针较好
gloom 2001-08-14
  • 打赏
  • 举报
回复
假如用char* s1[4]的话会造成数据丢失的,诚如: ddeng(登登) 所言。
故还是用二维数组,但这样的话就存在一人边界的问题。
gloom 2001-08-14
  • 打赏
  • 举报
回复
下面的我验证过了

AnsiString curStr="ad#fdsf#fdsadf#gdsg";
char s1[4][20];
int i=0;
int pos=curStr.Pos("#");
while (pos>0)
{
strcpy(s1[i],curStr.SubString(1,pos-1).c_str());
i++;
curStr.Delete(1,pos);
pos=curStr.Pos("#");
}
strcpy(s1[i],curStr.c_str());
for (int b=0;b<4;b++)
{
Label1->Caption=Label1->Caption+AnsiString(s1[b]);
}
}
wangledong 2001-08-14
  • 打赏
  • 举报
回复
String的最大长度是256好像是,AnsiStirng 的长度是4G,但用法都一样,用AnsiString吧。
ddeng 2001-08-14
  • 打赏
  • 举报
回复
:)
s1[i]的空间分配了吗?
jixian 2001-08-14
  • 打赏
  • 举报
回复
另问:String和AnsiString一样吗?
jixian 2001-08-14
  • 打赏
  • 举报
回复
验证后正确就给分!
gloom 2001-08-14
  • 打赏
  • 举报
回复
s1[i]=curStr.SubString(1,pos-1).c_str();
gloom 2001-08-14
  • 打赏
  • 举报
回复
SORRY,应该是
curStr.Delete(1,pos);//把"#"也要删除
gloom 2001-08-14
  • 打赏
  • 举报
回复
char* s1[MAX];//自己定义MAX的大小
AnsiString SourceStr="ad#fdsf#fdsadf#gdsg";
AnsiString curStr=SourceStr;
int pos=curStr.Pos("#");
int index=0;
while(pos>0)
{
*s1[i]=curStr.SubString(1,pos-1);
i++;
curStr.Delete(1,pos-1);
pos=curStr.Pos("#");
}

OK???

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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