如何从一个带有分隔符的字符串里读出每个子串??

zhaoxinghan 2005-03-24 07:34:30
比如有一个字符串是"123,345,345,1234",怎么样分别得到"123","345","1234"呢?希望得到简单的方法实现.
...全文
97 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaoxinghan 2005-03-24
  • 打赏
  • 举报
回复
其实我就是想要kyodan的那种方法,上边的两种我以前都用过.
kyodan 2005-03-24
  • 打赏
  • 举报
回复
TStrings *strs =NULL;
strs =new ...
if(strs)
strs->Delimiter =',';
strs->DelimitedText ="123,345,345,1234";
if(strs->Count >0)
for(int ii=0; ii <strs->Count; ++ii)
strs->Strings[ii]...
...

delete strs

//
//get more stuff from BCB's TStrings help
//
Gamma_Beam 2005-03-24
  • 打赏
  • 举报
回复
AnsiString AStr=SourceString;
TStringList* sRet=new TStringList();
int iPos=AStr.Pos(",");
while(iPos>0 )
{
sRet->Add(AStr.SubString(1,iPos-1));
AStr.Delete(1,iPos);
iPos=AStr.Pos(",");
}
if(!AStr.IsEmpty())
sRet->Add(AStr);
meikeer 2005-03-24
  • 打赏
  • 举报
回复
哈哈,我刚好写完的代码中用到了这个算法要简单的吧?

void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString sourceStr="123,345,345,1234";

String value;
int index=0;
int pos=sourceStr.Pos(",");
while (pos>0)
{
value=sourceStr.SubString(1,pos-1);
sourceStr.Delete(1,pos);
pos=sourceStr.Pos(",");
index++;
ShowMessage(value);
}
value=sourceStr;
ShowMessage(value);
delete ss;
}

这个是我的写法你照着改一下就是了

13,871

社区成员

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

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