VC中CString和Char的互相转换

来源:互联网 发布:中国第四人口普查数据 编辑:程序博客网 时间:2024/06/07 04:44

在实际编程中,常常会碰到一些数据类型的转换,特别是CStringChar的互相转换,一开始,我完全摸不着头脑,从网上看了别人的很多方法,现在我把我常用到的方法做一下总结。

1、char转换成CString

       如:定义一个字符串数组 char strSrc[] = “This is a string.”;

       定义一个字符串指针 char* strPointer = “This is a string”;

       定义一个CString strDes;

(1)    直接赋值

      strDes = strSrc

      strDes = strPointer;

(2)    使用CStringFormat()函数

      strDes.Format(“%s”,strSrc);

      strDes.Format(“%s”, strPointer);

2、CString转换成char

注意:此方法在 工程是Unicode字符集时会出错。Unicode输出结果会是 “T h i s    i s    a    s t r i n g . "

       如:定义一个CString strSrc(“This is a string.”);

       定义一个字符串数组 char strDes[100];

       定义一个字符串指针 char* strPointer;

(1)    强制类型转换

      strPointer = (LPTSTR)(LPTCTSTR)strSrc;

(2)    使用strcpy()

      int nLength = strSrc.GetLength()+1;

      strPointer = new char[nLength];

      memset(strDes, 0 ,sizeof(char)*100);

      strcpy(strPointer, strSrc, nLength);

      strcpy(strDes, strSrc, nLength);

(3)    使用 GetBuffer

      strPointer strSrc.GetBuffer();

      strSrc.ReleaseBuffer().

    此外,int,float型和char,CString型的转换可以通过标准库Stdlib.h中的itoa,ftoa,atoi,atof转换。
0 0
原创粉丝点击