189 8069 5689

【学习笔记】C++下字符串与数字的拼接-创新互联

目录
  • 环境
  • sprintf
  • to_string()
  • itoa

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的绥中网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!环境

OS:win 10
IDE:Visual Studio 2017

sprintf
  1. 描述:sprintf是一种 C 风格的字符串与数字拼接的方式,因为在 C 中没有 string 这种数据类型,所以它是将 char 类型的数据和数字类型(int, long, float 等)拼接
  2. 函数原型:int sprintf(char *buffer,const char *format [,argument] ...);
  3. 函数定义:sprintf代表 “string printf”。它将输出数据存储在buffer
  4. 返回值:如果成功则返回写入缓冲区的字符数量,如果出现错误返回 -1
  5. 示例
#includevoid ExampleSprintf()
{int a = 1, b = 2;
	float c = 5.5;
	char srcBuf[7]   = "noname";
	char destBuf[15] = {0 };   // 初始化为 0 字符

	int res = sprintf(destBuf, "%d%s%d%.1f", a, srcBuf, b, c); // .1f 表示仅输出小数点后 1 位

	std::cout<< destBuf<< std::endl;        // 1noname25.5
	std::cout<< "res: "<< res<< std::endl; // 11
}

【注】char类型的指针和数组都可以

to_string()
  1. 描述:在 C++11 后,string 类型的字符串之间可以直接通过 “+” 拼接,于是我么可以通过to_string()将数字转换成 string 类型,再进行拼接
  2. 函数原型:string to_string ( xxx val);其中 xxx 可以是诸如intlonglong longfloatdouble等这一类型
  3. 函数定义:将数字转换成 string 类型
  4. 返回值:返回转换后的字符串
  5. 示例
#include#includevoid ExampleTo_String()
{int a = 1, b = 2;
	float c = 5.5;
	std::string srcString = "noname";
	std::string destString;

	destString = std::to_string(a) + srcString + std::to_string(b) + std::to_string(c);

	std::cout<< destString<< std::endl;        // 1noname25.500000
}

【注】要使用 string 和to_string()需要引入头文件
【注】to_string()不支持格式化浮点类型的数据,但你可以通过其它方式截断小数点后的内容

itoa
  1. 描述:itoa 即 convert int to a string,将整型转换成 string 类型
  2. 函数原型:char * itoa ( int value, char * str, int base );在这里 value 表示要转换的 int 的值,str 表示最终转换成的字符串,base 表示进制,一般而言当传入 base 为 10 时,表示基于 10 进制转换
  3. 函数定义:注意 itoa 并不是 C++ 的一部分,只是一些编译器支持它,在该场景下,最好使用 sprintf 来替代它
  4. 返回值:指向 str 的指针,和参数 str 一样
  5. 示例
void Exampleitoa()
{int i = -1;
	char buffer[30];
	_itoa(i, buffer, 10);
	std::cout<< buffer<< std::endl; // -1
									  // 此处已经是字符串形式的 -1 了
}

【注】当 base 为 10 的时候,且当 value 为负数,那么转换后的字符串结果会自动加上一个负号(-),而其他进制的时候,value 会被视为无符号
【注】str 这个参数必须要足够容纳转换后的字符串大小

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享名称:【学习笔记】C++下字符串与数字的拼接-创新互联
分享链接:http://cdxtjz.cn/article/csphso.html

其他资讯