请教Cannot convert 'AnsiString' to 'char'问题! ( 积分: 20 )

  • 主题发起人 主题发起人 gxpcw
  • 开始时间 开始时间
G

gxpcw

Unregistered / Unconfirmed
GUEST, unregistred user!
char __fastcall TpcForm::Ascii2Hex(char data)
{
int c;
if(data>'9')
c=toupper(data)-'A'+10;
else
c=data-0x30;
return((char)c);
}
void __fastcall TpcForm::Button3Click(TObject *Sender)
{
// AnsiString EditText=Edit1->Text;
Edit3->Text=Ascii2Hex(Edit1->Text);
//调用以上函数
}
运行时出错:[C++ Error] pcw.cpp(57): E2034 Cannot convert 'AnsiString' to 'char'
[C++ Error] pcw.cpp(57): E2342 Type mismatch in parameter 'data' (wanted 'char', got 'AnsiString')
如果把Edit3->Text=Ascii2Hex(Edit1->Text);改为:
Edit3->Text=Ascii2Hex(Edit1->Text.c_str());
运行时又出错:[C++ Error] pcw.cpp(57): E2034 Cannot convert 'char *' to 'char'
[C++ Error] pcw.cpp(57): E2342 Type mismatch in parameter 'data' (wanted 'char', got 'char *')
敬请高手指点!
 
[:D]兄弟,string与char的区别是
string有多个char组成
这个是C++的代码,应该VC++6可以通过
int main()
{
string str = "abcdefg";

char sz[20];


for (int i = 0;
i < str.size() + 1;
i++)
{
sz = str;

}

cout << sz << endl;

}
至少具体的你自已搞定吧,我不能C++ Builder
 
AnsiString 是一个类
String 是一个结构
char* 是一个指针

AnsiString.c_str() 就是返回数据的字符串指针。
例如:
char * p;

AnsiString a = &quot;asdf&quot;;


p = a.c_str();
 
Edit3->Text=Ascii2Hex(Edit1->Text[1]);
Edit3->Text=Ascii2Hex(Edit1->Text[2]);
....
 
for (int i=1;i<=Edit1->Text.Length();i++)
{
Edit3->Text=Ascii2Hex(Edit1->Text)+&quot;&quot;;
}
此法也不行,结果不符.
 
后退
顶部