请问类字符串成员变量赋值有关问题
请教类字符串成员变量赋值问题?class Test{public:Test(){m_i 0memset(m_str, 0, sizeof(m_str))}int
请教类字符串成员变量赋值问题?
class Test
{
public:
Test()
{
m_i = 0;
memset(m_str, 0, sizeof(m_str));
}
int m_i;
char m_str[20];
};
int _tmain(int argc, _TCHAR* argv[])
{
Test t;
t.m_i = 10;
t.m_str = "kkkkkk"; //为什么不能这样赋值
return 0;
}
[解决办法]strcpy(t.m_str, "kkkkkk");
你仔细看看书,如何给字符串数组赋值
[解决办法]char m_str[20]="kkkkkkkkk";只能在初始化时这样用
m_str[20]="kkkkkkkkk"; 这样用就不对了,这是在赋值,不是初始化了,得用楼上的方法了
[解决办法]char str[] 有重载 =操作符?
用string吧
数组初始化的时候 如 char str[] = "kkkk";这样还是可以的
[解决办法] t.m_str = "kkkkkk";
这样的赋值方式只能在初始化的时候进行的!
其他的时候,意思就变了,相当于把"kkkkkkk"的地址值赋值给m_str而已!
用strcpy或者memcpy吧
memcpy(t.m_str, "kkkkkk", sizeof("kkkkkk"));