C++获取字符串中指定数字相加,字符串和int相互转化
#include<iostream>
#include<string>
#include<stdio.h>
#include <stdlib.h>
using namespace std;
int main(){
int add1(char a[],char d1);
char aa[10]=””;
char b[10]=””;
char c,d;
cin>>aa>>c>>b>>d;
cout<<add1(aa,c)+add1(b,d);
return 0;
}
int add1(char a[],char d1){
string s=a;
int j=0;
string flag=””;
for(j=0;j<s.length();j++){
if(a[j]==d1){
flag+=a[j];
}
}
return atoi(flag.c_str()); //把字符串转换成整形
}
C标准库了提供了 atoi, atof, atol, atoll(C++11标准) 函数将字符串转换成int,double, long, long long 型,头文件#include <stdlib.h>。
char str[] = “15.455”;
double db;
int i;
db = atof(str); // db = 15.455
i = atoi(str); // i = 15
若字符串为string类型,则要用c_str()方法获取其字符串指针,如下:
string str = “15.455”;
double db;
int i;
db = atof(str.c_str()); // db = 15.455
i = atoi(str.c_str()); // i = 15