c++,windows中的字符问题
string与char*的转换方法
string a;
char *b=a.c_str();
string a=new String(b);
a=b;
LPCWSTR是unicode的字符串,LPCSTR是ascll字符串
你可以使用Microsoft在ATL里面提供的宏来进行转换
#include <atlbase.h>
USES_CONVERSION;
LPCWSTR pw = T2W("Hello,world!"); // tchar -> wchar
LPCTSTR pt = W2T(L"Hello,world!"); // wchar -> tchar
等等.
CString头文件#include <afx.h>
string头文件#include <string.h>
1、CString转char
*
CString cstr;
char *p =(LPSTR)(LPCTSTR)cstr;
2、string转
CString
CString.format(”%s”, string.c_str());
用c_str()确实比data()要好.
3、char转
CString
CString.format(”%s”, char*);
4、char转
string
string s(char *);
只能初始化,在不是初始化的地方最好还是用assign().
5、string转
char *
char *p = string.c_str();
6、CString转
string
string s(CString.GetBuffer());
GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.
―――――――――――――――――――――
《C++标准函数库》中说的
有三个函数可以将字符串的内容转换为字符数组和C―string
1、data(),返回没有”/0“的字符串数组
2、c_str(),返回有”/0“的字符串数组
3、copy()
―――――――――――――――――――――
CString与int、char*、char[100]之间的转换--
1、CString互转int
(1)将字符转换为整数,可以使用atoi、_atoi64或atol。
(2)将数字转换为CString变量,可以使用CString的Format函数。如
CString s;
int i = 64;
s.Format(”%d”, i)
Format函数的功能很强,值得你研究一下。
voidCStrDlg::OnButton1()
{
// TODO: Add your control notificationhandler code here
CString
ss=”1212.12″;
int temp=atoi(ss);
CString aa;
aa.Format(”%d”,temp);
AfxMessageBox(”var is ” + aa);
}
sart.Format(”%s”,buf);
2、CString互转char*
CString strtest;
char * charpoint;
///char * TO cstring
charpoint=”give string a value”;
strtest=charpoint;
///cstring TO char *
charpoint=strtest.GetBuffer(strtest.GetLength());
标准C里没有string,char*==char
[]==string
可以用CString.Format(”%s”,char *)这个方法来将char
*转成CString。要把CString转成char*,用操作符(LPCSTR)CString就可以了。
3、CString转换
char[100]
///char[100] TOcstring
char a[100];
CString str(”aaaaaa”);
///cstring TO char[100]
strncpy(a,(LPCTSTR)str,sizeof(a));
c++,windows中的字符问题的更多相关文章
- WEB开发中的字符集和编码
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- PHP用mb_string函数库处理与windows相关中文字符
昨天想批处理以前下载的一堆文件,把文件里的关键内容用正则匹配出来,集中处理.在操作文件时遇到一个问题,就是windows操作系统中的编码问题. 我们都知道windows中(当然是中文版),文件名和文件 ...
- .NET Framework 中的字符编码
字符是可用多种不同方式表示的抽象实体. 字符编码是一种为受支持字符集中的每个字符进行配对的系统,配对时使用的是表示该字符的某些值. 例如,摩尔斯电码是一种为罗马字母表中的每个字符进行配对的字符编码,配 ...
- [转]bat中的特殊字符,以及需要在bat中当做字符如何处理
bat中的特殊字符,以及需要在bat中当做字符如何处理 批处理.Bat 中特殊符号的实际作用,Windows 批处理中特殊符号的作用: @ \\隐藏命令的回显. ~ \\在for中表示使用增强的变量扩 ...
- 【Windows】Windows中的数据类型以及命名
一.大写标示符 Windows中的很多标识符都是以两个或者三个大写字母作为前缀的,且其后紧跟一个下划线.这些标识符都是常量数值,前缀表明该常量的一般类别.如下 前缀 常量 CS(Class Style ...
- 配置 .vimrc 解决 Vim / gVim 在中文 Windows 下的字符编码问题
转载自:-杨博的日志 - 网易博客 Vim / gVim 在中文 Windows 下的字符编码有两个问题: 默认没有编码检测功能 如果一个文件本身采用的字符集比 GBK 大(如 UTF-8.UTF-1 ...
- Windows中的键盘快捷方式大全
Windows有很多键盘快捷方式,使用键盘快捷方式能够大大提高使用windows的效率,同时还能提升自己的逼格,背熟几个快捷方式,操作起来行云流水犹如大神一般! 页面较长,请使用目录浏览(点击跳转), ...
- Windows中的键盘快捷方式
Windows 中的键盘快捷方式 适用于: Windows 10Windows 8.1Windows 7 Windows 10 键盘快捷方式就是按键或按键组合,可提供一种替代方式来执行通常使用鼠标执行 ...
- VC++中多字节字符集和Unicode之间的互换
在Visual C++.NET中,默认的字符集是Unicode,这和Windows默认的字符集是一致的,不过在老的VC6.0等工程中,默认的字符集形式是多字节字符集(MBCS:Multi-Byte C ...
随机推荐
- 【自动化测试】关于UI自动化的疑问(记录ing)
1. 数据变动问题导致业务需要增加新的逻辑,这是增加case的健壮性还是浪费时间? 2. 如何做好PO? 不断数据抽离不断优化方法? 3. 如何提高调试代码的效率? /web可以 4. 主管不理解自动 ...
- ODBC访问不到Server的问题
安装了ODBC-MYSQL的配置以后,发现在测试连接Mysql服务器的时候,一直访问不通, 经过测试发现,安装ODBC的PC(windows 8.1 )上的防火墙阻止了连接,最终确认需要 把虚拟机监控 ...
- 几款免费的不用数据库的php的cms
免费不用数据库的php的cms 下面的几种内容采集系统都是英文版的,全部不需使用数据库,都是国外的免费并且开源CMS.对中文支持如何,你自己试试吧! 1.MuCMS一个小型,平台独立的内容管理系统适用 ...
- db2数据库创建一张表,并为该表加上主键递增的性能和中间表的创建的sql语句
创建角色表 CREATE TABLE NBCTXP.TBL_NBC_NONBANKROLE ( ID BIGINT NOT NULL, ROLENAME VARCHAR(50), C ...
- jquery的jquery c.browser msie undefined的问题解决办法
http://blchen.com/jQuery-can-not-read-property-msie-of-the-undefined-error-solution/ 转载: [jQuery] Ca ...
- EasyDarwin返回401 Unauthorized解决方法
在向EsayDarwin发起 RTSP DESCRIBE请求或者ANNOUNCE推送时,EasyDarwin会返回401 Unauthorized: 原因:在EasyDarwin的RTSP Sessi ...
- head 命令
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾. 1.命令格式: hea ...
- Masonry 固定宽度 等间距
-(void)makeEqualDisViews:(NSArray *)views inView:(UIView *)containerView LRpadding:(CGFloat)LRpaddin ...
- C#(WinForm)实现软件注册
转自:http://www.cnblogs.com/ynbt/archive/2011/11/02/2233470.html 源码如下:下载
- 【转】Linux下创建、销毁、使用 SWAP
转自:http://blog.csdn.net/wxqee/article/details/7970110 创建swap文件方法 1) 创建一个足够大的文件 dd if=/dev/zero of=/l ...