vc6c语言int转char数组,C++中的数据类型转换方法

摘要:本文总结了C/C++中的多种数据类型转换方法,并比较了各自的优劣。给出了推荐的使用建议。

从int到char*,或者反过来从char*到int,在C/C++中到底有多少种转换方法呢?符合标准的大概有四种。即C数据转换函数族、sprintf/snprintf/sscanf函数族、字符串流std::stringstream、std::strsteam。不符合标准却又广为使用的包括CString和boost::lexical_cast。本文只讨论符合标准的转换方法,其中std::strstream由于已经被C++标准委员为指定为不推荐使用的(deprecated),所以不予考虑了。下面重点讨论三种标准转换方法之间的优劣。源代码的地址是:http://download.csdn.net/source/631475

1. Int和char*或std::string之间的转换

C数据转换函数族

C数据转换函数族即包括itoa、atoi等数据类型转换函数在内的一大批C函数,在C语言时代曾经被大量使用。源代码如下:

int i = 10;

char szBuf[10] = "";

itoa(i, szBuf, 10);

cout<

i = 0;

i = atoi(szBuf);

cout<

使用还是比较简单的。一个最大的问题是:没有进行char*的越界检查,可能会造成数组溢出。

snprintf/sscanf

sprintf是用来格式化字符串的一个C函数,sscanf则是从字符串中读取值的一个C函数。由于Herb

Sutter(Exceptional C&#

你可能感兴趣的:(vc6c语言int转char数组,C++中的数据类型转换方法)