• 主页
  • Windows SDK/API
  • 基础类
  • ActiveX
  • 数据库及相关技术
  • 网络及通讯开发
  • VCL组件使用和开发

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

zhaoxinghan 2005-03-24 07:34:30
比如有一个字符串是"123,345,345,1234",怎么样分别得到"123","345","1234"呢?希望得到简单的方法实现.
...全文
64 点赞 收藏 4
写回复
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;
}

这个是我的写法你照着改一下就是了
回复 点赞
发动态
发帖子
C++ Builder
创建于2007-08-02

2562

社区成员

10.2w+

社区内容

C++ Builder相关内容讨论区
社区公告
暂无公告