bcb中对字会进行分割,下面写2个例子来说明。
第一种,如果字符的中的分割符是逗号’,’,哪这种分割将变的非常简单。只要将字符输入到TStringList对象中,就完成了分割。代码如下
1 2 3 4 5 6 7 |
AnsiString Str = "1,2,3,4,5,6,7,8,9"; TStringList *ss = new TStringList; ss->CommaText = Str; for(int i=0; i<ss->Count; i++){ ss->Strings[i]; //这样就得到被分割的字符串 } delete ss; |
具体分割成了? 1? 2? ?3? ?4? ?5? 6? 7? 8? 9,将数字都分割出来了。
第二种,就是自已写一个分割字符串函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
TStringList* __fastcall SplitString(const WideString src,const WideString delimeter) { TStringList *tsl = new TStringList(); const wchar_t *deli = delimeter.c_bstr(); wchar_t *p = wcstok(src.c_bstr(),deli); String str(""); while(p!=NULL) { str = String(p); tsl->Add(str); p = wcstok(NULL,deli); } return tsl; } AnsiString str = "w:qewqe, fssadf.ewqeq," AnsiString deli = ": , ."; TStringList* tsl = SplitString(str, deli); |
SplitString此函数第一个参数是:待分割字符串,
第二个参数是:要用什么字符进行分割,可以是多个
返回一个字符列表指针(TStringList*)。
有了第二种方法后,基本上字符分割问题都能更解决。