vc2005 字符串拷贝

来源:百度知道 编辑:UC知道 时间:2024/05/18 17:59:08
在vc6.0中,一下代码可以运行
CString str;
char *p;
.....
strcpy(p,str);
但在vc2005编译出错,问题在str是CString 对象,若str的类型不变,应如何将str中的内容拷贝到p中,

VC2005中用的是UNICODE编码方式,与C处理的不一样,C是ANSI编码方式。而且CString是个类,没有这种用法的。
Str若要类型不变的话,可以用函数GetBuffer(),不过返回的是: LPTSTR ,然后用将其赋给p(要想赋值成功,P必须申明为:wchar*,因为这才是unicode编码,即两字节表一个字符)。
当然你也可以专门写两个函数将字符串关于unicode与ansi编码的相互转换。
不过更多的还是推荐全部用:unicode编码,这也是大势所趋。在现在的XP,2000,WINCE系统上都是按照unicode编制的,可以保证程序更快速地运行,当然可移植性也肯定好多了。

strcpy 只能对char* 操作
可以p[i]=str[i]