加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在C中将数字转换为字符串的最佳方法?

发布时间:2020-12-16 10:34:03 所属栏目:百科 来源:网络整理
导读:参见英文答案 Easiest way to convert int to string in C++????????????????????????????????????27个 来自C#背景,在C#我可以这样写: int int1 = 0;double double1 = 0;float float1 = 0;string str = "words" + int1 + double1 + float1; ..和字符串的转
参见英文答案 > Easiest way to convert int to string in C++????????????????????????????????????27个
来自C#背景,在C#我可以这样写:

int int1       = 0;
double double1 = 0;
float float1   = 0;

string str = "words" + int1 + double1 + float1;

..和字符串的转换是隐含的.在C中我理解演员必须是明确的,我想知道这个问题通常是由C程序员解决的?

我已经知道网上有很多信息,但似乎有很多方法可以做到,我想知道是否没有标准的做法?

如果你用C语言编写上面的代码,你会怎么做?

解决方法

C语言中的字符串只是字节容器,所以我们必须依靠其他功能来为我们完成此操作.

在C03的旧时代,我们通常使用I / O流的内置词法转换工具(通过格式化输入):

int    int1    = 0;
double double1 = 0;
float  float1  = 0;

std::stringstream ss;
ss << "words" << int1 << double1 << float1;

std::string str = ss.str();

您可以使用各种I / O操纵器来微调结果,就像在sprintf格式字符串中一样(它仍然有效,并且在某些C代码中仍然可见).

还有其他方法,它们自己转换每个参数然后依赖于连接所有结果字符串. boost :: lexical_cast提供了这个,就像C 11的to_string一样:

int    int1    = 0;
double double1 = 0;
float  float1  = 0;

std::string str = "words"
   + std::to_string(int1) 
   + std::to_string(double1) 
   + std::to_string(float1);

然而,后一种方法无法控制数据的表示方式(demo).

> std::stringstream
> std::to_string

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读