C++字符串间的转换,第1张

C++字符串间的转换,第2张

通常,在编写代码时,需要在数值(int、long、float、double...)和字符串。C/C++中主要有以下几种转换方法:
(1)使用CRT库中的转换函数族。
_itoa,_itow及其逆变换atoi,_wtoi
_ltoa,_ltow及其逆变换atol,_ wtol
_ ultoa,_ ultow
_ ecvt,_ fcvt,_ gcvt及其逆变换_ _atoflt
...
这种方法的优点:C中的标准库(部分平台相关)不需要自己编写。
考试提醒:缺点(传递函数多,难记,使用不方便。)
(2)。它是借助C++98标准中的stringstream模板类实现的。
数值到字符串的转换可以这样实现:
Template
Basic _ String numeric 2 String(numeric num)
{
Basic _ OstringStream OSS;
oss >结果;
返回结果;
}
为了支持C风格字符串直接转换为数值,我们可以重载一个转换:
template
numeric string 2 numeric(const chart * str)
{
basic _ istringstream ISS(str)
numeric result;
iss > >结果;
返回结果;
}
这种方法的优点:转换函数少,好记,好用。
缺点:模板编程对于C++初学者来说比较难,需要手工实现。
(C),使用第三方库(比如boost中的lexical_cast)。
使用这种方法的优点:功能强大,稳定。
缺点:需要自己移植。
考试推荐:有兴趣的朋友可以自行学习。
(4)使用sprintf可以实现数值到字符串的转换。
可惜这种方法没有对应的逆转换,数组缓冲容易受益,所以强烈不建议考试。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C++字符串间的转换

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情