首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

语法异常

2012-03-03 
语法错误#includeiostream#includestringusing namespace stdvoid main(){//char nonu,verb,prepstr

语法错误
#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区别:

C/C++ code
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);} 

热点排行