怎样将CString变量赋值给字符数组

2024-06-10 02:22:32 浏览

CString可以通过GetBuffer()函数获得其内部的字符数组地址。

怎样将CString变量赋值给字符数组

CString s = TEXT("abcd"); //创建一个CString字符串TCHAR array[100]; //创建一个数组LPTSTR pBuffer = s.GetBuffer(); //获取字符串内部的字符数组的地址memcpy(array, pBuffer, s.GetLength() * sizeof(TCHAR)); //向数组复制数据

1.传给未分配内存的const char* (LPCTSTR)指针. CString cstr(asdd); const char* ch = (LPCTSTR)cstr; ch指向的地址和cstr相同。但由于使用const保证ch不会修改,所以安全.

2.传给未分配内存的指针. CString cstr = "ASDDSD"; char *ch = cstr.GetBuffer(cstr1.GetLength() + 1); cstr.ReleaseBuffer(); //修改ch指向的值等于修改cstr里面的值. //PS:用完ch后,不用delete ch,因为这样会破坏cstr内部空间,容易造成程序崩溃.

3.第二种用法。把CString 值赋给已分配内存的char *。 CString cstr1 = "ASDDSD"; int strLength = cstr1.GetLength() + 1; char *pValue = new char[strLength]; strncpy(pValue, cstr1, strLength);

4.第三种用法.把CString 值赋给已分配内存char[]数组. CString cstr2 = "ASDDSD"; int strLength1 = cstr1.GetLength() + 1; char chArray[100]; mEMSet(chArray,0, sizeof(bool) * 100); //将数组的垃圾内容清空.

C语言中赋值语句的规则如下:

1. 赋值语句的格式为:变量名 = 表达式;

   其中,变量名表示要被赋值的变量名称,表达式则是右侧的值或运算结果。

2. 赋值号“=”表示将右侧表达式的值赋给左侧的变量,

   在赋值完成之后,左侧的变量存储了右侧表达式的值。

3. 表达式可以是常量、变量或者多个常量和变量的组合,

   还可以使用基本的算术、关系和逻辑运算符对表达式进行处理。

4. 赋值语句必须在语句末尾添加分号“;”,分号表示一个语句结束。

5. 赋值语句的执行顺序是从右到左,

   先计算右侧表达式的值,再将其赋给左侧变量。

6. 如果变量在没有初始化的情况下被赋值,

   则它的初始值将被覆盖为右侧表达式的值。

7. C语言支持复合赋值运算符,包括“+=”、“-=”、“*=”、“/=”等,

   它们可以将右侧表达式的值与左侧变量的值进行运算,最终将结果赋给该变量。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。