c语言long类型转换成string,如何在C ++中将long转换为string?「建议收藏」

c语言long类型转换成string,如何在C ++中将long转换为string?「建议收藏」你可以使用stringstream。#include//…std::stringnumber;std::stringstreamstrstream;strstream<<1L;strstream>>number;标准库中通常会有一些专有的C函数供您的编译器使用。尽pipe如此,我更喜欢更“便携”的变体。C的方法是用sprintf,但这不是很安…

大家好,又见面了,我是你们的朋友全栈君。

你可以使用stringstream。

#include // … std::string number; std::stringstream strstream; strstream << 1L; strstream >> number;

标准库中通常会有一些专有的C函数供您的编译器使用。 尽pipe如此,我更喜欢更“便携”的变体。

C的方法是用sprintf,但这不是很安全。 在一些库中有像sprintf_s这样的新版本可以防止缓冲区溢出。

在C ++ 11中,实际上有中的std :: to_string和std :: to_wstring函数。

string to_string(int val); string to_string(long val); string to_string(long long val); string to_string(unsigned val); string to_string(unsigned long val); string to_string(unsigned long long val); string to_string(float val); string to_string(double val); string to_string (long double val);

那么如果你是复制粘贴的粉丝,这里是:

#include template inline std::string to_string (const T& t) { std::stringstream ss; ss << t; return ss.str(); }

int main() { long mylong = 123456789; string mystring; stringstream mystream; mystream << mylong; mystring = mystream.str(); cout << mystring << “\n”; return 0; }

我不知道这是什么样的作业,但是很可能老师不想要一个你称之为“神奇”的现有function的答案(尽pipe这是推荐的方法),但他想看如果你可以自己实现这个。

回到过去,我的老师曾经说过这样的话:“我想看看你是否可以自己编程,而不是如果你能在系统中find它。 那么,他是多么的错…)

无论如何,如果你的老师是一样的,这是艰难的方式来做到这一点..

std::string LongToString(long value) { std::string output; std::string sign; if(value < 0) { sign + “-“; value = -value; } while(output.empty() || (value > 0)) { output.push_front(value % 10 + ‘0’) value /= 10; } return sign + output; }

你可以争辩说,使用std::string不是“困难的方式”,但我猜在实际algorithm中什么是重要的。

有几种方法。 阅读Manor Farm的string格式化程序进行深入比较。

#include …. std::stringstream ss; ss << a_long_int; // or any other type std::string result=ss.str(); // use .str() to get a string back

std::stringstream出std::stringstream 。

到目前为止,还没有人介绍过的其中一个问题,就是帮助你进一步思考这个问题,这个格式应该是什么格式。

只需看看spreedsheet程序(如Calc / Excel)。 你想要四舍五入到最接近的百万,如果它是负数括号,总是显示符号….数字真的是别的东西的代表,如果你用Oractal或Hex显示它?

到目前为止的答案给了你一些默认输出,但也许不是正确的。

你可以在C ++ 11中使用std :: to_string

long val = 12345; std::string my_val = std::to_string(val);

我通常这样做的方式是使用sprintf。 所以很长一段时间你可以做以下假设你是在一个32位的架构:

char buf[5] = {0}; // one extra byte for null sprintf(buf, “%l”, var_for_long);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146719.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 差分数组详解[通俗易懂]

    差分数组详解[通俗易懂]题目:来先看一道裸题,有n个数。m个操作,每一次操作,将x~y区间的所有数增加z;最后有q个询问,每一次询问求出x~y的区间和。思路:很明显,直接用前缀和无法快速满足这个操作,所以我们就用到了查分数组。设a数组表示原始的数组;设d[i]=a[i]-a[i-1](1&lt;i≤n,d[1]=a[1]);设f[i]=f[i-1]+d[i](1&lt;i≤n,f[1]=d[1]=a[1]);设sum[i…

    2022年6月9日
    39
  • java stopwatch_java stopwatch 功能

    java stopwatch_java stopwatch 功能1/*2*Copyright(C)2008TheGuavaAuthors3*4*LicensedundertheApacheLicense,Version2.0(the”License”);5*youmaynotusethisfileexceptincompliancewiththeLicense.6*Youmayobtain…

    2022年6月23日
    31
  • python面试题目及答案(数据库常见面试题及答案)

    Python是目前编程领域最受欢迎的语言。在本文中,我将总结Python面试中最常见的50个问题。每道题都提供参考答案,希望能够帮助你在2019年求职面试中脱颖而出,找到一份高薪工作。这些面试题涉及Python基础知识、Python编程、数据分析以及Python函数库等多个方面。Q1、Python中的列表和元组有什么区别?Q2、Python的主要功能是什么?Python是一种解释型…

    2022年4月17日
    70
  • elasticsearch部署方案_elasticsearch实例

    elasticsearch部署方案_elasticsearch实例来源:http://www.linuxidc.com/Linux/2015-02/114243.htm开始研究搜索了,在自己虚拟机上搭建了一个简易ElasticSearch搜索集群,与大家分享一下,希望能有所帮助。操作系统环境: RedHat 4.8.2-16elasticsearch:elasticsearch-1.4.1集群搭建方式:一台虚拟

    2022年10月13日
    2
  • openstack介绍_openstack开发

    openstack介绍_openstack开发什么是云计算最早提出来是亚马逊公司,发家是靠卖书,最后自己把自己卖书的业务移到互联网上,随着自己公司业务的增加,自己公司内部服务器就不够用了,慢慢就开始做虚拟化,做了虚拟化之后,随着公司组织架构的复

    2022年8月2日
    6
  • 软件测试 黑盒_软件测试黑盒测试报告

    软件测试 黑盒_软件测试黑盒测试报告1、黑盒测试概念      黑盒测试法也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性…

    2022年9月1日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号