当前位置: 首页 > news >正文

C++使用技巧(二十三):回顾整形转化为字符串

其中有使用itoa(),atoi(),sprintf()这三个函数

使用字符串流

 1 #include<iostream>
 2 #include<string>
 3 #include<sstream>
 4 using namespace std;
 5 string itos(int i) // 将int 转换成string{
 6 {
 7     stringstream s;
 8 s << i;
 9 return s.str();
10  }
11  int main() {
12      int i = 127;
13      string ss = itos(i);
14      const char* p = ss.c_str();
15      cout << ss << " " << p << "\n";
16  }

参考:http://c.biancheng.net/view/208.html

itoa()函数

itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用的基数。在上例中,转换基数为10。10:十进制;2:二进制…

itoa并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,请用sprintf。
是Windows平台下扩展的,标准库中有sprintf,功能比这个更强,用法跟printf类似:


#include <iostream>
#include <numeric>
#include <iterator>
#include <vector>
#include <algorithm>

namespace ClassFoo

{
    void Iota_1() 
    {
        std::vector<int> foo;// 构造一个 vector 对象
        foo.resize(15);        
        std::iota(foo.begin(), foo.end(), 9);// 将从 9 开始的 15 次递增值赋值给 foo
        // 输出 foo 中的内容
        std::copy(foo.begin(),foo.end(),std::ostream_iterator<int>(std::cout, " "));
        std::cout << std::endl;
    }
}

int main()
{
    //案例1
    ClassFoo::Iota_1();   

    //案例2
    int a[20];
    std::iota(std::begin(a),std::end(a),1);//给数组赋值
    std::for_each(std::begin(a),std::end(a),[](int n){std::cout<<n<<" ";});
    
    // [](int n){std::cout<<n<<" ";};
    return 0;
}
//输出结果:
// 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 
// 1 2 3 4 5 6 7 8 9 10

其中:{}属于Lambda 的语法形式如下:

[函数对象参数] (操作符重载函数参数) mutable 或 exception 声明 -> 返回值类型 {函数体}

参考:https://docs.microsoft.com/en-us/cpp/cpp/lambda-expression170


案例1:

#include<iostream>
#include <unistd.h>
 #include<string>
 #include<sstream>

using namespace std;
string itos(int i) // 将int 转换成string{
    {
        stringstream s;
        s << i;
        return s.str();
}

int main() {

    string s1 = "num";
    
   
    int num = 0;
	while (num < 10)
	{
        string ss = itos(num);
        const char* p = ss.c_str();
		cout << s1+ss + "="  << num*2 << endl;
        cout << ss << " " << p << "\n";
		num++;
	}


	pause();

	return 0;
}

执行结果:

num0=0
num1=2
num2=4
num3=6
num4=8
num5=10
num6=12
num7=14
num8=16
num9=18

参考:https://blog.csdn.net/weixin_43055404/article/details/103299156

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • c++中new和delete,delete[]的匹配问题(原创)
  • C++使用技巧(二十四):回顾vector用法及多维数组使用
  • 常用的JavaScript语句集(一)
  • C++使用技巧(二十五):srand、rand、fill/fill_n、generate/generate_n、count_if搭配使用
  • C++使用技巧(二十六):unique、distance、accumulate搭配lambda函数表达式使用
  • 编写一个含二级目录的源码(Asp+JavaScript)
  • C++使用技巧(二十七):回顾函数指针参数、数组参数、结构体函数参数
  • C++使用技巧(二十八):回顾内存new关键字、引用、默认参数、 占位参数、重载、类和对象、构造函数
  • 无组件上传图片到数据库源码
  • 关于 PyTorch android 在应用程序中的使用示例
  • 完美解决ubuntu报错:ppa.launchpad与404 Not Found [IP: 91.189.95.85 80]
  • AI模型C++部署:ubuntu安装Cython并使用C/C++调用python动态库【附加c++与python互相调用算法demo程序接口的源码】
  • Java学习备忘录(四)方法篇(原创)
  • AI服务器环境:OpenCV++与spleeter人声音伴奏分离docker环境/源码地址
  • AI模型C++部署:【配置OpenCV4++环境】与【三种在 C++ 中部署 TensorFlow 模型的方式】【准备阶段】
  • [笔记] php常见简单功能及函数
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • Hibernate【inverse和cascade属性】知识要点
  • HTML5新特性总结
  • Java 23种设计模式 之单例模式 7种实现方式
  • JavaScript的使用你知道几种?(上)
  • JavaWeb(学习笔记二)
  • laravel5.5 视图共享数据
  • Node项目之评分系统(二)- 数据库设计
  • PAT A1092
  • PHP的类修饰符与访问修饰符
  • SAP云平台里Global Account和Sub Account的关系
  • Spring框架之我见(三)——IOC、AOP
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 算法之不定期更新(一)(2018-04-12)
  • 线上 python http server profile 实践
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • Python 之网络式编程
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • !!java web学习笔记(一到五)
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • (windows2012共享文件夹和防火墙设置
  • (二) 初入MySQL 【数据库管理】
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (力扣)循环队列的实现与详解(C语言)
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (四)Linux Shell编程——输入输出重定向
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)http-server应用
  • (转)memcache、redis缓存
  • (转)VC++中ondraw在什么时候调用的
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]