LPCTSTR类型和字符串

转载:

1.https://blog.csdn.net/Joker_mw/article/details/79127790

2.https://blog.csdn.net/shelleyhuhu/article/details/5406703

char* 转换成string

char *pChar;
string str=pChar;

string转换成LPCSTR

LPCSTR lpcStr=str.c_str();

string转换成char*

string str;
char * pchar;
int len = str.length();
pchar = (char *)malloc((len + 1)*sizeof(char));
str.copy(pchar, len, 0);
*(pchar + len) = '';//注意手动加结束符!!!

https://blog.csdn.net/shelleyhuhu/article/details/5406703

1,LPCTSTR类型


L
    表示long指针 这是为了兼容Windows 3.1等16位操作系统遗留下来的。

P

   表示这是一个指针

C
    表示是一个常量

T

    表示_T宏,这个宏用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏, 有时候注意加 _T()


那么这个字符或者字符串将被作为UNICODE字符,否则就是标准的ANSI字符串。


STR

 表示这个变量是一个字符串


  所以LPCTSTR就表示一个指向常固定地址的可以根据一些宏定义改变语义的字符串。const char *


  CString 转LPCTSTR:


  CString cStr;


  const char *lpctStr=(LPCTSTR)cStr;


  LPCTSTR转CString:


  LPCTSTR lpctStr;


  CString cStr=lpctStr;

CString 类

      CString对象提供了动态内存分配机制,它是通过“引用”机制来管理分配的内存块,使用CString类可不指明内存大小
CString会根据需要自行分配。
CSting类的常用操作:

1)、连接字符串


   可以使用“+”连接两个字符串。

   使用Insert函数可以在字符串的任意位置插入新的字符串,如下面的代码:

   CString str1(“天王宝马”);

   str1.Insert(4,“盖地虎/n");

   str1+="镇河妖”;

   AfxMessageBox(str1);


  一个汉字在CString对象中的长度为2。

2)、比较字符串


   可以使用Compare()函数比较两个字符串的大小。

   int result=str1.Compare(str2);

   按照对应的ASCII值比较、、、。

3)、查找字符串


   可以使用CString类的Find()函数从字符串的指定位置开始,查找指定字符或字符串,返回字符所在字符串的位置。

4)、提取字符串


   使用CString类的Left()、Mid()和Right()函数,可以从一个字符串的左边,中间,右边位置开始提取字符串。。


5)、变换字符串


   使用CString类的MakeUpper()。MakeLower()函数可以变换字符串的大小写。

   使用TrimLeft()和TrimRight()函数去除字符串前后的空格、、

   CString类还有其他的一些常用的操作,如替换、删除制定字符串、提取、处理单个字符串等等。


   CString的格式化与类型转换:

   使用CString类的Format()函数可以将数字格式化为字符串

   Format()函数的调用的一般形式为:

   str.Format(“格式控制字符串”,输出内容)
   格式字符串的一半形式为:

  【标志】【输出最小宽度】【精度】【长度】转换说明符

  CString类型字符串也可以转换为其他类型

  (1)转换为整型。可以使用atoi()函数靓啊CSring数字字符转换为整型。

  (2)转换为char *类型。

  几种方法:使用GetBuffer()函数:返回一个CString对象的指针

  使用memcpy()函数;

  使用LPCTSTR强制类型转换

原文地址:https://www.cnblogs.com/MCSFX/p/12693477.html