C++中字符串和数字互转

长话短说,有两种方法:

1. 直接利用 string 里面的函数:

详细介绍:string里面有什么?

字符串转换为数字:

主要是这几个函数: stoi, stoll, stod 等等,分别将 string 转换为int, long long , double型变量。

数字转换为字符串:

利用to_string()函数, 很多重载, 非常友好。

例子:

	//字符串转换为数字 
	cout<<"字符串转换为数字:" <<endl;
	string intStr="123456789";
	cout<<"string To int: "<<stoi(intStr)<<endl;
	string longlongStr="12345678987654321";
	cout<<"string To long long: "<<stoll(longlongStr)<<endl;
	string doubleStr="1234.56789";
	printf("string To double: %f\n\n", stod(doubleStr));
	
	//数字转换为字符串: 
	cout<<"数字转换为字符串:"<<endl;
	double a=1234.56789;
	string str=to_string(a);
	cout<<"double To string: "<<str<<endl<<endl; 

输出如下:
在这里插入图片描述

2. 利用 sscanf() 和 sprintf()
字符串到数字用 sscanf()函数 ,数字到字符串用sprintf()函数

我们默认的输入输出设备是屏幕, 只要我们我们将输入输出改为字符串, 就能实现转换效果。
例子:

	//万能转换:
	cout<<"万能转换:"<<endl; 
	double doubleIsMe;
	sscanf("1234.56789", "%lf", &doubleIsMe);
	printf("string To double: %f\n", doubleIsMe);
	char print[10];
	sprintf(print, "int To char[]: %d", 3*4);
	printf("%s\n",print);

输出结果:
在这里插入图片描述
怎么理解呢?
我们经常用的 scanf() 和 printf() 实际上是指从屏幕读入数据, 向屏幕输出数据。
sscanf(“1234.56789”, “%lf”, &doubleIsMe) 意思就是说, 从”1234.56789“这个字符串中, 以 %lf 的方式读入数据, 到 doubleIsMe 对应的地址中去。
sprintf()工作原理同理, 就不赘述了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值