读出来的字符串空格出现的地方有可能是在前后中地方出现,以下是我的代码,例如读出来的数据是“美 国”,经过处理后得到的还是“美 国”
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i=0;
AnsiString temp1="";
AnsiString temp2="";
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from worldnum");
ADOQuery1->Open();
ADOQuery1->First();
temp1=ADOQuery1->FieldByName("worldname")->AsString;
i=temp1.Pos(" ");
while(i!=0)
{
temp1.Delete(i,1);
i=temp1.Pos(" ");
}
Edit1->Text=temp1;
}
//应该这样写吧:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i=0;
AnsiString temp1="";
AnsiString temp2="";
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from worldnum");
ADOQuery1->Open();
ADOQuery1->First();
temp1=ADOQuery1->FieldByName("worldname")->AsString;
i=temp1.Pos(" ");
do
{
temp1=temp1.Delete(i,1);
i=temp1.Pos(" ");
}while(i!=0);
Edit1->Text=temp1;
}
寫個C函數吧,速度快點。
TrimAll(AnsiString &str) //去掉字符串中所有的空格。
{
char *sp = str.c_str();
for(char *sp1=sp; *sp1;++sp1) //字符串自拷貝。
{
if(*sp1 != )
*sp++ = *sp1 ;
}
*sp = 0 ;
}