用此种方法实现拆分极其简单,但美中不足的是只能同时拆分由一种符号隔开的字符串,不能同时拆分两种及以上符号分隔开的字符串。
程序代码如下
- String input;
- char *p,*q;
- input = Edit1->Text.Trim();
- p = strtok(input.c_str() , " ") ;
- while(p)
- {
- Memo1->Lines->Add(p);
- p = strtok(NULL, " ");
- }
- //此为拆分全角空格分隔开的字符串,将两处全角空格替换成其他的字符就相应地变成拆分由此种符号分隔的字符串
贴出完整代码
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #pragma hdrstop
- #include "Main.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma resource "*.dfm"
- TForm1 *Form1;
- //---------------------------------------------------------------------------
- __fastcall TForm1::TForm1(TComponent* Owner)
- : TForm(Owner)
- {
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::Button1Click(TObject *Sender)
- {
- String input;
- char *p,*q;
- input = Edit1->Text.Trim();
- p = strtok(input.c_str() , " ") ;
- while(p)
- {
- /*
- q = strtok(p, " ") ;
- while(q)
- {
- Memo1->Lines->Add(p);
- q = strtok(NULL, " ");
- }
- */
- Memo1->Lines->Add(p);
- p = strtok(NULL, " ");
- //此为拆分全角空格分隔开的字符串,将两处全角空格替换成其他的字符就相应地变成拆分由此种符号分隔的字符串
- }
- }
- //---------------------------------------------------------------------------
测试抓图
上图为全角空格字符串测试
上图为半角空格字符串测试