visual studio 2005中,字符串的问题

2024-12-02 17:39:58
推荐回答(1个)
回答1:

1、串通过操作符“+”连接以后不能赋值给char [60]类型的变量,但是可以赋值给string类型变量,如:
string mc = "A" + "BCD";
2、方法CWnd::MessageBoxW()接收的第一个参数类型不匹配,允许进行强制转换,比如:
MessageBox((LPCTSTR)mc);

针对问题补充:
1、如果使用类型string,那么需要
#include
才能识别。
2、如果使用类型CString,那么等号右边的所有连接参数都必须为CString或char *类型的。m_Ecode应该不是这两种类型之一吧?其实可以将指令
mc="Data for Employee code: "+m_Ecode+" Employee name:"+m_Fname+" "+m_Lname+" is accepted.";
换成
mc.Format("Data for Employee code: %d Employee name: %s %s is accepted.", m_Ecode, m_Fname, m_Lname);
前提是m_Ecode为int类型,m_Fname和m_Lname为char *或CString类型。
3、同样,如果mc如下定义:
char mc[60];
也可以这样为之赋值:
sprintf(mc, "Data for Employee code: %d Employee name: %s %s is accepted.", m_Ecode, m_Fname, m_Lname);
效果与第2点相同。