读书人

请问类字符串成员变量赋值有关问题

发布时间: 2013-11-14 22:02:51 作者: rapoo

请教类字符串成员变量赋值问题?


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"));

读书人网 >C++

热点推荐