c++中在字符串中提取数据

在字符串中提取数据是编程中必不可少的环节。c语言中字符串是通过char数据实现的,c++帮我们封装好了string这个类型,我们直接通过这个类型来声明字符串。

#include
#include
#include

using namespace std;
int main(){
	string s = "4155d6";
	char c = s[0];
	int a = atoi(&c);
	int b = atoi(&s[1]);
	cout<

atoi是c语言的函数,其参数是一个指向char类型的指针,处在stdlib.h中。

运行结果如下:

c++中在字符串中提取数据_第1张图片

要特别注意,能得到4只是恰好取的第一个数,假如我想取第二个数1,令 c = s[1];atoi()后是得不到1的,得到的是41.

这就和c++的内存管理有关了,因为char c只是声明了一个指针,指向了s的某个位置。要想得到我们想要的字符,必须的char c = new char(s[1]),再atoi后就可以得到1.

两个数之和为159说明它们都已成功转化为int型。

值得注意的是,b得到了从索引1开始的所有数字,并将它们整体转化为一个数。

而a的由来,我是先将string中的字符赋给一个char,然后再把这个char的地址传入。这样得到的就是一个数字。

你可能感兴趣的:(c++中在字符串中提取数据)