MFC/C++/C中字符类型CString, int, string, char*之间的转换
- 1 CString,int,string,char*之间的转换
- string 转 CString
- CString.format("%s", string.c_str());
- char 转 CString
- CString.format("%s", char*);
- char 转 string
- string s(char *);
- string 转 char *
- char *p = string.c_str();
- // CString转std::string
- CString str = dlg.GetPathName();
- setlocale(LC_ALL, "chs");
- char *p = new char[256];
- wcstombs( p, str, 256 );
- m_fileName = p;
- 1,string -> CString
- CString.format("%s", string.c_str());
- 用c_str()确实比data()要好.
- 2,char -> string
- string s(char *);
- 你的只能初始化,在不是初始化的地方最好还是用assign().
- 3,CString -> string
- string s(CString.GetBuffer());
- GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.
- 《C++标准函数库》中说的
- 有三个函数可以将字符串的内容转换为字符数组和C—string
- 1.data(),返回没有”\0“的字符串数组
- 2,c_str(),返回有”\0“的字符串数组
- 3,copy()
- CString互转int
- 将字符转换为整数,可以使用atoi、_atoi64或atol。
- 而将数字转换为CString变量,可以使用CString的Format函数。如
- CString s;
- int i = 64;
- s.Format("%d", i)
- Format函数的功能很强,值得你研究一下。
- void CStrDlg::OnButton1()
- {
- // TODO: Add your control notification handler code here
- CString
- ss="1212.12";
- int temp=atoi(ss);
- CString aa;
- aa.Format("%d",temp);
- AfxMessageBox("var is " + aa);
- }
- sart.Format("%s",buf);
- CString互转char*
- ///char * TO cstring
- CString strtest;
- char * charpoint;
- 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就可以了。
- CString转换 char[100]
- char a[100];
- CString str("aaaaaa");
- strncpy(a,(LPCTSTR)str,sizeof(a));
- 2 CString类型的转换成int
- CString类型的转换成int
- 将字符转换为整数,可以使用atoi、_atoi64或atol。
- //CString aaa = "16" ;
- //int int_chage = atoi((lpcstr)aaa) ;
- 而将数字转换为CString变量,可以使用CString的Format函数。如
- CString s;
- int i = 64;
- s.Format("%d", i)
- Format函数的功能很强,值得你研究一下。
- 如果是使用char数组,也可以使用sprintf函数。
- //CString ss="1212.12";
- //int temp=atoi(ss);
- //CString aa;
- //aa.Format("%d",temp);
- 数字->字符串除了用CString::Format,还有FormatV、sprintf和不需要借助于Afx的itoa
- 3 char* 在装int
- #include <stdlib.h>
- int atoi(const char *nptr);
- long atol(const char *nptr);
- long long atoll(const char *nptr);
- long long atoq(const char *nptr);
- 4 CString,int,string,char*之间的转换
- string aa("aaa");
- char *c=aa.c_str();
- cannot convert from 'const char *' to 'char *'
- const char *c=aa.c_str();
- 5 CString,int,string,char*之间的转换
- string.c_str()只能转换成const char *,
- 要转成char *这样写:
- string mngName;
- char t[200]; memset(t,0,200); strcpy(t,mngName.c_str());
MFC/C++/C中字符类型CString, int, string, char*之间的转换的更多相关文章
- (转)CString,int,string,char*之间的转换
CString,int,string,char*之间的转换http://www.cnblogs.com/greatverve/archive/2010/11/10/cstring-int-string ...
- VC CString,int,string,char*之间的转换
CString转string : CString strMfc = "test"; std::string strStr; strStr = strMfc.GetBuffer(); ...
- 数据结构基础之memset---有memset 抛出的int 和 char 之间的转换和字节对齐
今天晚上,在做滤波算法时,里面用到很多float 和int 以及char 之间的类型强制转换,后面滤波完发现图片有些区域块,有过度曝光的白光,我就跟踪,以为是char 字符数字数据溢出问题,加了0-2 ...
- mfc CString,string,char* 之间的转换
知识点: CString转char*,string string转char*,CString char* 转CString,string 一.CString转char*,string //字串转换测试 ...
- CString,string,char*之间的转换(转)
这三种类型各有各的优点,比如CString比较灵活,是基于MFC常用的类型,安全性也最高,但可移植性最差.string是使用STL时必不可少的类型,所以是做工程时必须熟练掌握的:char*是从学习C语 ...
- 【转载】CString,string,char*之间的转换
本文转自 <> 这三种类型各有各的优点,比如CString比较灵活,是基于MFC常用的类型,安全性也最高,但可移植性最差.string是使用STL时必不可少的类型,所以是做工程时必须熟练掌 ...
- 【转】char*,string,CString,int,char[]之间的转换
CString 头文件#include <cstring>.CString 转char * CString cstr; ..data(),返回没有”/“的字符串数组..c_str(),返 ...
- Java进阶(二十三)java中long类型转换为int类型
java中long类型转换为int类型 由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况: 主要以下几种转换方法,供参 ...
- 浅谈C#语言中的各种数据类型,与数据类型之间的转换
什么是数据类型? 数据类型,百度百科是这样解释的:数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作.这样的解释对于一个初学者来说未必太过于深奥. 简单点说,数据类型就是不同长度的 ...
随机推荐
- POJ:3616-Milking Time
Milking Time Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12324 Accepted: 5221 Descrip ...
- 奇异值分解(SVD)原理详解及推导
在网上看到有很多文章介绍SVD的,讲的也都不错,但是感觉还是有需要补充的,特别是关于矩阵和映射之间的对应关系.前段时间看了国外的一篇文章,叫A Singularly Valuable Decompos ...
- 15,redis基础学习
redis Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件 yum安装redis 1.yum安装 #前提得配置好阿里云yum源,epel源 #查看 ...
- poj3348 Cows 凸包 叉积求多边形面积
graham扫描法,参考yyb #include <algorithm> #include <iostream> #include <cstdio> #includ ...
- js模板引擎之 Handlebars 基本用法
模板引擎比较久远的一个技术,常见的模板引擎有 baiduTemplate(百度)\artTemplate(腾讯)\juicer(淘宝)\doT\ tmpl\ handlebars\ easyTempl ...
- quick sort去除无用判断
#include <stdio.h> #include <stdlib.h> //int a[]={1000,10000,9,10,30,20,50,23,90,100,10} ...
- 修改window 10 开始菜单问题
cmd->powershell Get-AppxPackage | % { Add-AppxPackage -DisableDevelopmentMode -Register "$($ ...
- android什么时候会产生ANR
ANR: Application No Response 1.界面操作(按钮点击)等待时间超过5秒 2.HandleMessage 回调函数中执行超过10秒(进行长时间处理不放在主界面,放在另一个线程 ...
- 导出csv用excel打开后数字不用科学计数法显示(0123456显示123456)
从这儿抄过来的: http://zhejiangyinghui.iteye.com/blog/1149526 最近写了一个生成csv的程序,生成的csv其中有一列数字长度为13位,csv中查看没有问题 ...
- windows 下开发的 .netCore MVC 部署到 Linux(Mint)
这两天在公司跟同事偶然聊到 .netCore,说到一些趋势什么的.但是说来说去自己也没试过在Linux 机子上部署过,所以就试一下. 尝试之前也在网上看了一些文章,包括 Linux 上.netCore ...