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) = '\0';//注意手动加结束符!!!
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强制类型转换
LPCTSTR类型和字符串的更多相关文章
- Sass插值、注释、数剧类型、字符串、值类型
插值#{}使用 CSS 预处理器语言的一个主要原因是想使用 Sass 获得一个更好的结构体系.比如说你想写更干净的.高效的和面向对象的 CSS.Sass 中的插值(Interpolation)就是重要 ...
- QT枚举类型与字符串类型相互转换
在QT中将枚举类型注册(QT_Q_ENUM或QT_Q_FLAG)后,就可以利用QT的元对象进行枚举类型与字符串类型转换了. 代码示例: #include <QtCore/QMetaEnum> ...
- Redis 小白指南(二)- 基础命令和五大类型:字符串、散列、列表、集合和有序集合
Redis 小白指南(二)- 基础命令和五大类型:字符串.散列.列表.集合和有序集合 引言 目录 基础命令 字符串类型 散列类型 列表类型 集合类型 有序集合类型 基础命令 1.获得符合规则的键名列表 ...
- MySQL (二)-- 数据类型(列类型)、数值类型、 小数类型、 时间日期类型、 字符串类型 、 MySQL记录长度、列属性
1 数据类型(列类型) 所谓的数据类型:对数据进行统一的分类,从系统的角度出发是为了能够使用统一的方式进行管理,更好的利用有限的空间. SQL中将数据类型分成了三大类: 2 数值类型 数值类型数据:都 ...
- Redis 小白指南(二)- 聊聊五大类型:字符串、散列、列表、集合和有序集合
Redis 小白指南(二)- 聊聊五大类型:字符串.散列.列表.集合和有序集合 引言 开篇<Redis 小白指南(一)- 简介.安装.GUI 和 C# 驱动介绍>已经介绍了 Redis 的 ...
- sql server 删除所有表和递归查询、数字类型转为字符串
1.删除所有表 select 'drop table '+name+';' from sys.tables where name like 'DataSyncV1DelaySample%' or na ...
- for循环,数字类型,字符串类型
for 循环: l=['a','b','c'] for i in l : print(i) while循环和for循环 while循环:条件循环,循环的次数取决于条件何时为False for循环:循环 ...
- Date类型与字符串之间的转换
Java中Date类型与字符串转化 (一)Date与字符串的转化 Date.String.Timestamp之间的转换! public static void main(String[] ...
- { MySQL基础数据类型}一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型
MySQL基础数据类型 阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己 ...
随机推荐
- 解决Oracle12cr2自创建用户无法登录的问题
说明: 下面创建是创建CDB本地用户,不是PDB应用程序用户,如果是PDB应用程序创建语法会不一样.下面介绍创建CDB本地用户. 创建表空空间 CREATE TABLESPACE YH datafil ...
- 利用Decorator和SourceMap优化JavaScript错误堆栈
配合源码阅读体验更佳. 最近收到用户吐槽 @cloudbase/js-sdk(云开发Cloudbase的JavaScript SDK)的报错信息不够清晰,比如下面这条报错: 这属于业务型报错,对于熟悉 ...
- AndroidStudio中利用git下载github或者git.oschina的代码时报错:repository test has failed解决方法
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 微博:http://weibo.com/mcxiaobing AndroidS ...
- android MVVM(1)用LiveData关联VM 与 V
1.官方文档 MVVM 官方文档: https://developer.android.com/jetpack/docs/guide ViewModel 文档: https://developer.a ...
- java控制流程(二)
一.循环结构 有一天你的女朋友让你写一百遍我爱你,你是要一行一行的手写出来,还是利用编程的循环结构写出来? while 语法: 表达式返回的为boolean值 while(表达式){ 需要循环的语句 ...
- vmware-workstation迁移虚拟机 15pro到12版本
最近将测试的几台虚拟机进行了迁移,有几个点要注意,分享一下 1.环境介绍: 源服务器-ip-172.16.96.x 目标服务器-ip-172.16.96.x VMware版本-VMwareworkst ...
- 网站远程附件存储到 OSS
参考:链接 链接 链接 简介 网站远程附件功能是指将用户上传的附件直接存储到远端的存储服务器,一般是通过FTP的方式存储到远程的FTP服务器,将论坛附件保存在 OSS 上有以下好处: 附件将拥有更 ...
- 烂大街的 Spring 循环依赖问题,你觉得自己会了吗
文章已收录在 GitHub JavaKeeper ,N 线互联网开发.面试必备技能兵器谱,笔记自取. 微信搜「 JavaKeeper 」程序员成长充电站,互联网技术武道场.无套路领取 500+ 本电子 ...
- SQL Node 1.05版
输出: select a.f1, b.f2 from table01 a, ( select a from tb ) b where a.f1=1 and b.f2=2 or b.f3=3 order ...
- java 检查进程是否存在
以nginx进程为例子 private final static String NAME_STRING = "nginx.exe"; //传入进程名称processName pub ...