C++中int转string方法

C++中int转string方法一点睛需要用到snprintf()。函数原型intsnprintf(char*str,size_tsize,constchar*format,…)功能:将可变参数“…”按照format的格式格式化为字符串,然后再将其拷贝至str中。(1)如果格式化后的字符串长度<size,则将此字符串全部复制到str中,并给其后添加一个字符串结束符(…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一 点睛

需要用到snprintf()。

函数原型

int snprintf(char *str, size_t size, const char *format, ...)

功能:

将可变参数 “…” 按照format的格式格式化为字符串,然后再将其拷贝至str中。

(1) 如果格式化后的字符串长度 < size,则将此字符串全部复制到str中,并给其后添加一个字符串结束符(‘\0’)。

(2) 如果格式化后的字符串长度 >= size,则只将其中的(size-1)个字符复制到str中,并给其后添加一个字符串结束符(‘\0’),返回值为欲写入的字符串长度。

(3) 若成功则返回预写入的字符串长度,若出错则返回负值。

二 snprintf实战

1 代码

#include<stdio.h>
int main (){
    char a[20];
    int i = snprintf(a, 9, "%012d", 12345);
    printf("i = %d, a = %s", i, a);
    return 0;
}

2 运行

[root@localhost charpter03]# g++ 0306.cpp -o 0306
[root@localhost charpter03]# ./0306
i = 12, a = 00000001

3 说明

%012d的格式是指使输出的int型的数值以12位的固定位宽输出,如果不足12位,则在前面补0;如果超过12位,则按实际位输出。如果输出的数值不是int型,则进行强制类型转换为int型,之后按照前面格式输出。那就先得到000000012345,再取前面(9-1)位,即8位,最终输出00000001。

将int转换为string,代码通常可以这样写:

static inline std::string i64tostr(long long a)
{
    char buf[32];
    snprintf(buf,sizeof(buf),"%lld",a);
    return std::string(buf);
}

 

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/184769.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • NOIP2014_noip比赛时间

    NOIP2014_noip比赛时间NOIp2012day1T1Vigenère密码标签:模拟主要是用了ASCII码,字母’A’的ASCII码是41H(01000001B),字母’a’的ASCII码是61H(01100001B),字母’A’与’a’的二进制后5位是相同的,所以无论是大写字母还是小写字母x,x&31(11111B)的值就是x在字母表里的顺序。简单判一下边界就行了c…

  • spring事务回滚的多种方式「建议收藏」

    spring事务回滚的多种方式「建议收藏」转:https://www.cnblogs.com/zeng1994/p/8257763.htmlstart看下下面的说明,会对理解本人贴出的代码有帮助。1.代码中事务控制的3种方式编程式事务:就是直接在代码里手动开启事务,手动提交,手动回滚。优点就是可以灵活控制,缺点就是太麻烦了,太多重复的代码了。声明式事务:就是使用SpringAop配置事务,这种方式大大的简化了编码。需要注…

    2022年10月19日
  • arm的一些概念(ARM9、Cortex的区别)

    arm的一些概念(ARM9、Cortex的区别)arm的一些概念(ARM7、Cortex-M的区别)ARM7:ARMv4架构,ARM9:ARMv5架构,ARM11:ARMv6架构,ARM-Cortex系列:ARMv7架构。  ARM7没有MMU(内存管理单元),只能叫做MCU(微控制器),不能运行诸如Linux、WinCE等这些现代的多用户多进程操作系统,因为运行这些系统需要MMU,才能给每个用户进程分配进程自己独立的地址空间。uc…

  • 企业微信发送消息api_微信公众号发消息给用户

    企业微信发送消息api_微信公众号发消息给用户最近,接手了告警的一个需求。详细需求:监控一个应用的某些指标超标了,要提醒用户,通过企业微信给指定用户发送告警信息;今日自己实现了一下,总结出来分享给大家。注意:代码亲自编写,已自测通过文章目录前言一、编码?1.依赖2.SendWX.java3.WeChatMsgSend.java4.WeChatData.java5.WeChatUrlData.java二、参数1.构建自己的企业微信2.参数详细获取总结前言通过企业微信给指定用户发送告警信息一、编码?1.依赖<dependencie

  • Python画图之浪漫樱花

    Python画图之浪漫樱花importturtleasTimportrandomimporttime#画樱花的躯干(60,t)defTree(branch,t):time.sleep(0.0005)ifbranch>3:if8<=branch<=12:ifrandom.randint(0,2)…

  • 十大免费DNS域名解析服务-稳定,可靠,好用的免费DNS服务

    十大免费DNS域名解析服务-稳定,可靠,好用的免费DNS服务DNS,即DomainNameSystem,中文为域名解析系统,平时我们可能感觉不到DNS的存在,但是一旦DNS域名解析出了问题则可能对网站造成重大损失。就目前来看,DNS可能会因遭到攻击而出现宕机或不能正常解析域名到IP地址。比某某域名DNS解析就经常出现不稳定的情况。而另一个DNS可能存在的问题就是与搜索引擎关系的问题。部分一些DNS可能会因为技术或者人为的因素而屏蔽了搜索引擎的蜘蛛或

发表回复

您的电子邮箱地址不会被公开。

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