string、char中将单个字符转化为数字的几种方法

本文介绍如何从字符串中逐个提取数字的方法,包括使用C++标准库函数如substr和c_str,以及通过ASCII码转换实现。适用于需要解析数字数据的场景。

在string中,string s = "12345"

如果想提取出每一位的数字,即分别得到1,2,3,4,5,怎么做呢

需要用到substr和c_str

substr:拷贝子字符串

string s1 = s.substr(0,2);//从下标0开始,拷贝2位

则s1 = "12"; 

c_str:返回字符串的指针

代码如下:

int main() 
{	
	string s = "12345"; 
	for (int i = 0; i < s.size(); i++)
	{
		int temp = atoi(s.substr(i, 1).c_str());
		cout << temp << endl;
	}
	getchar();
	return 0;
}
输出:
1
2
3
4
5

对于char来说,简单些

int main() 
{	
	char p[] = "12345";
	for (int i = 0; i < strlen(p); i++)
	{
		int temp = p[i] - '0';
		cout << temp << endl;
	}
	getchar();
	return 0;
}

结果同上

也可以将string转为char处理,如下

int main() 
{	
	string s = "12345"; 
	const char *p = s.c_str();
 	for (int i = 0; i < s.size(); i++)
	{
		int temp =  p[i] - '0' ;
		cout << temp << endl;
	}
	getchar();
	return 0;
}
结果同上
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值