关闭

C++ 中int,char,string,CString类型转换(一)

179人阅读 评论(0) 收藏 举报
1. c++中string到int的转换

1) 在C标准库里面,使用atoi:

#include <cstdlib> 
#include <string>

std::string text = "152"; 
int number = std::atoi( text.c_str() ); 
if (errno == ERANGE) //可能是std::errno 

 //number可能由于过大或过小而不能完全存储 

else if (errno == ????) 
//可能是EINVAL 

 //不能转换成一个数字 
}

2) 在C++标准库里面,使用stringstream:(stringstream 可以用于各种数据类型之间的转换)

#include <sstream> 
#include <string>

std::string text = "152"; 
int number; 
std::stringstream ss;


ss << text;//可以是其他数据类型
ss >> number; //string -> int
if (! ss.good()) 

//错误发生 
}

ss << number;// int->string
string str = ss.str(); 
if (! ss.good()) 

 //错误发生 
}

3) 在Boost库里面,使用lexical_cast:

#include <boost/lexical_cast.hpp> 
#include <string>

try 

 std::string text = "152"; 
 int number = boost::lexical_cast< int >( text ); 

catch( const boost::bad_lexical_cast & ) 

 //转换失败 
}                      

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(),否则就没有释放缓冲区所占的空间.

7.字符串的内容转换为字符数组和C—string
(1)  data(),返回没有”\0“的字符串数组
(2)  c_str(),返回有”\0“的字符串数组
(3)  copy()

8.CString与int、char*、char[100]之间的转换

(1) CString互转int

将字符转换为整数,可以使用atoi、_atoi64或atol。而将数字转换为CString变量,可以使用CString的Format函数。如
CString s;
int i = 64;
s.Format(”%d”, i)
Format函数的功能很强,值得你研究一下。

void CStrDlg::OnButton1()
{
   CString
   ss=”1212.12″;
   int temp=atoi(ss);
   CString aa;
   aa.Format(”%d”,temp);
   AfxMessageBox(”var is ” + aa);
}

(2) CString互转char*

///char * TO cstring
CString strtest;
char * charpoint;
charpoint=”give string a value”; //?
strtest=charpoint;

///cstring TO char *
charpoint=strtest.GetBuffer(strtest.GetLength());

(3) 标准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));


转自:http://www.cnblogs.com/sqzxcv/archive/2009/11/30/1613414.html

0
0
查看评论

unicode下CString转string

这是从网上找到的一个方法,具体网址没记住,就当原创吧。 void CStringTostring(CString cstr,string &str) { int n = cstr.GetLength(); //按字符计算,str的长度 int len = WideCharToMulti...
  • XuePiaoFei1
  • XuePiaoFei1
  • 2015-07-27 23:02
  • 696

C/C++ 基本数据类型之间的相互转换 int / char / string / vector windows与linux通用

参考: http://blog.csdn.net/xinwang24/article/details/6612686 http://zhidao.baidu.com/link?url=or5e32M8_B32g1alI6fHMiu9e5GNeVFf4Lrp2ZhIfP3ngnXzNDNwpGCpG...
  • u012005313
  • u012005313
  • 2016-02-18 19:32
  • 3412

VS2013各种类型转换

1.CString到const char *的转换         const char * a;         CString b;        //a=b;//不存在从CS...
  • u014568921
  • u014568921
  • 2015-03-14 14:29
  • 1896

C++ 中int,char,string,CString类型转换

http://www.2cto.com/kf/201202/121164.html 1. c++中string到int的转换 1) 在C标准库里面,使用atoi: #include #include std::string text = "152";...
  • xiaohuangcat
  • xiaohuangcat
  • 2013-11-29 14:38
  • 369

CString与string、char*的区别和转换

我们在C++的开发中经常会碰到string、char*以及CString,这三种都表示字符串类型,有很多相似又不同的地方,常常让人混淆。下面详细介绍这三者的区别、联系和转换: 各自的区别 char*: char*是一个指向字符的指针,是一个内置类型。可以指向一个字符,也可以表示字符数组的首地址...
  • luoweifu
  • luoweifu
  • 2014-03-01 20:34
  • 20347

C++中int,char,string,CString类型转换

C++ 中int,char,string,CString类型转换 1. c++中string到int的转换 1) 在C标准库里面,使用atoi: #include #include std::string text = "152"; int number = std::ato...
  • rKF30910
  • rKF30910
  • 2012-03-28 00:44
  • 558

MFC/C++/C中CString, int, string, char*之间的转换

1CString,int,string,char*之间的转换 string 转 CStringCString.format("%s", string.c_str()); char 转 CStringCString.format("%s", char*); ch...
  • laoyi19861011
  • laoyi19861011
  • 2010-12-24 22:22
  • 841

CString,string,char*,int类型转换

#include //使用C++标准库的string类时using namespace std; //同上#include #include #include //要将string类和int类型直接转换最好有这些包含,//因为自己写一个转换函数比较方便,函数定义参考如下st
  • changbaolong
  • changbaolong
  • 2011-07-17 10:39
  • 417

vs2015 CString 转 const char* 方法

目前由于学习socket网络编程,用到window相关API,但进入可视化编程后,发现套接字在初始化时无法处理CString,系统显示不匹配. 鉴于vs2015已经淘汰了好多旧函数,好多以前用的方法都不支持实现CString 转换 const char*的方法,  最后可以按以下方...
  • youxishaonian
  • youxishaonian
  • 2017-03-16 19:09
  • 1174

int char string CString类型转换

#include //使用C++标准库的string类时 using namespace std; //同上 #include    #include #include     //要将string类和int类型直接转换最好有这些包含, ...
  • yuanran460286147
  • yuanran460286147
  • 2014-08-18 20:48
  • 215
    个人资料
    • 访问:1900次
    • 积分:64
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条
    文章分类