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 3254 状压DP(基础题)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 17749 Accepted: 9342 Desc ...
- 一行代码将两个列表拼接出第三个列表(两个可迭代对象相加产生第三个可迭代对象)--map()方法
map()方法 map(func, *iterables) --> map object lambda方法: lambda 参数 :返回值 a = map(',7]) print(list(a ...
- Maven系列之快速入门
文章结构 唯快不破---Maven快速入门 稳打稳扎---Maven核心知识 实用为先---Maven如何建立Web项目 1 唯快不破---Maven快速入门 1.1 Maven项目 ...
- 《数据结构与算法分析:C语言描述》复习——第八章“并查集”——并查集
2014.06.18 14:16 简介: “并查集”,英文名为“union-find set”,从名字就能看出来它支持合并与查找功能.另外还有一个名字叫“disjoint set”,中文名叫不相交集合 ...
- USACO Section1.4 Arithmetic Progressions 解题报告
ariprog解题报告 —— icedream61 博客园(转载请注明出处)-------------------------------------------------------------- ...
- Jmeter编码问题
问题现象:1.利用csv data set config参数化数据后,在beanshell中引用,能正常引用到,但是传给服务器时,还是报手机号格式不对 将jmeter日志级别打成debug(jmete ...
- drf解决跨域问题 使用 django-corse-headers扩展
跨域CORS 使用django-corse-headers扩展 安装 pip install django-cors-headers 添加应用 INSTALLED_APPS = ( ... 'cors ...
- 设计模式之模板方法模式 templateMethod
代码实现 public abstract class BankTemplateMethod { //具体方法 public void takeNumber(){ System.out.println( ...
- 安装cloudbase-init和qga批处理
@echo off title Auto Install color 1F ::CloudBase-Init echo. msiexec /i \\192.168.122.47\cloudbase\C ...
- 容器基础(二): 使用Namespace进行边界隔离
Linux Namespace 容器技术可以认为是一种沙盒(sandbox), 为了实现沙盒/容器/应用间的隔离,就需要一种技术来对容器界定边界,从而让容器不至于互相干扰.当前使用的技术就是Names ...