`
qzs127
  • 浏览: 17108 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类

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

阅读更多
C++ 中int,char,string,CString类型转换(一)


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));

分享到:
评论

相关推荐

    datatype-transform.rar_C++ CString CHAR_CString_char int 转换_char

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

    VC、C++ CString,int,string,char之间的转换

    CString,int,string,char之间的转换

    CString,int,string,char之间的转换(C/C++)

    CString,int,string,char之间的转换(C/C++),用于新手入门使用,希望能够带来帮助

    VC之CString,wchar_t,int,string,char*之间的转换

    很好的东西,新手操作必知的数据转化方法》

    string、wstring、cstring、 char、 tchar、int、dword转换方法

    各种字符串类型的转换方法,留着备份以后使用

    C++:CString转换

    CString/string/char*/char[]/int/float相互转换

    C++字符串转换

    字符串转换: CString,int,string,char*之间的转换 ;

    C++中数据类型的转换

    CString string char int 等类型的相互转换

    C++常见数据类型转换类

    该类封装了各种数据类型转换的方法,可以实现CString、string、const char*、char*、TCHAR*、int之间的相互转换。

    rsa算法设计 密码学

    //将一个大数类型转换为一个CString类型 int Getinput(byteint result,CString input); //将字符串转换为对应的大数形式 int Getinput1(byteint result,unsigned long input); //将长整形数转换为对应的大数形式 ...

    string,CString,char*之间的转化

    下面是MFC/C++/C中字符类型CString, int, string, char*之间的转换的说明与举例,经常用的东西,相信对于用C/C++的朋友,还是比较有用的

    新手学习C++入门资料

    上面两个都是C风格的强制类型转换,C++还增加了一种转换方式,比较一下上面和下面这个书写方式的不同: long int el=123; short i=int (el); float m=34.56; int i=int (m); 使用强制类型转换的最大好处...

    C++中的string类的用法小结

    其实,可能很多人很可能会忽略掉标准C++中string类的使用。标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用。现将具体用法的一部分罗列如下,只起一个抛砖引玉的作用吧,好了,废话少...

    From C to C++

    pupil::pupil(char *n,int a,char *b): child(n,a) { strcpy(book,b); } // --- void pupil::list() { cout; } //---------- int main(){ child tom,rose("Rosie",4); tom.ask("tom"); rose.ask("Alice"); ...

    C++Ping一个IP地址的例子

    static char* AllocBuffer(CString strMsg) { int nLen = strMsg.GetLength(); char *pBuffer = new char[nLen+1]; strcpy(pBuffer,(const char*)strMsg); ASSERT(pBuffer != NULL); return pBuffer; } 3...

    C++关于信息学竞赛 函数章节 53个源文件试题 供初学者练习

    C++关于信息学竞赛 函数章节 53个源文件试题 供初学者练习 详细讲解了有关函数章节的对应练习题 #include using namespace std; void fun(int n,int r)//由十进制数n,转换成对应的r进制 (100,8) { char ch[6]={...

    windows下C++对象的反射功能

    支持的类型:bool、char、int、float、double、std::vector、std::map、std::string、pointer、reference、array、CString、CMap、CArray 等常见类型。 具体使用说明见:...

    C++MFC教程

    而32位的系统中每一运行的程序都会有一个消息队列,所以系统可以在多个消息队列中转换而不必等待当前程序完成消息处理就可以得到控制权。这种多任务系统就称为抢先式的多任务系统。Windows95/NT就是这种系统。 1.3 ...

    C和C++头文件对比一览

    把C++头文件的.h去掉,于是就有前面出现的iostream,同样C的头文件也做了相同的处理,同时在前面加上了一个字母c,以表示是C的头文件(感觉上有中种族歧视的感觉)。同时标准化委员会声明就有的C++头文件将不再列于...

    编译原理实践中间代码生成代码(c++)

    #include&lt;string.h&gt; #include&lt;cstring&gt; using namespace std; #define dd(x) cout #define de(x) cout //词法分析双向链表(存已识别的词单元(endSign)) typedef struct WordAnalysisList { struct WordAnalysisList...

Global site tag (gtag.js) - Google Analytics