语法错误
#include<iostream>
#include<string>
using namespace std;
void main()
{
//char nonu,verb,prep;
string nonu="你我他家饭水";
string verb="吃喝睡去";
string get;
cin>>get;
string code;
for(int i=0;i<get.length();i+=2)
{
code=get.substr(i,2);
if (nonu.find(code)!=-1)
cout <<code<<"/nonu";
else
if (verb.find(code)!=-1)
cout <<code<<"/verb";
else
cout <<code<<"/unknow" ; //未知的
}
cout<<endl;
}
把这个程序转换成c++builder语法,修改一下错误:
//---------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String nonu="你我他家饭水";
String verb="吃喝睡去";
String get;
get=Memo1->Lines->Text.Trim();
String code,str0,str1;
for(int i=0;i<get.Length();i+=2)
{
code=get.SubStr(i,2);
if (nonu.Find(code)!=-1)
//cout <<code<<"/nonu";
str0.sprintf("%s/nonu",code);
else
if (verb.Find(code)!=-1)
//cout <<code<<"/verb";
str0.sprintf("%s/verb",code);
else
//cout <<code<<"/unknow" ;
str0.sprintf("%s/unkown",code);
str1+=str0;
}
Memo2->Lines->Add(str1);
}
//---------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------
[解决办法]
注意BCB String与string区别:
void __fastcall TForm1::Button1Click(TObject *Sender){ String nonu="你我他家饭水"; String verb="吃喝睡去"; String get; get=Memo1->Lines->Text.Trim(); String code,str0,str1; for(int i=1;i<get.Length();i+=2) //从1开始 { code=get.SubString(i,2); //没有SubStr if (nonu.AnsiPos(code)!=0) //返回为0表示没有找到 str0.sprintf("%s/nonu",code); else if (verb.AnsiPos(code)!=0) //同上 str0.sprintf("%s/verb",code); else str0.sprintf("%s/unkown",code); str1+=str0; } Memo2->Lines->Add(str1);}