#include<sstream>
头文件提供数据类型转换
int main()
{
//字符串转化成整数
int A;
string s;
cin>>s;
stringstream seam;//随意的什么类型都可以输入
seam<<s;//向流中传入值s 字符串型
seam>>A;//向A中写入值A 整型
cout<<A;
**//到此字符串转换成整数成功**
//整数装换成字符串
int B;
cin>>B;
seam.clear();//重复利用的时候,清空缓存
seam<<B;
seam>>s;
cout<<s;
}
input:1234(字符串) 对应output:1234整数
input:6547(整数) 对应output:6547(字符串)
除此之外的另外2种函数转换方式:
- 字符串转换成整数 atoi
include<iostream>
include<string>
include<stdio.h>//printf的头文件
include <stdlib.h>//atoi的头文件
using namespace std;
int main(){
/****************字符串转换成整数*****************/
//方法一:atoi函数 字符数组转换成整数
char str1[10]="123"; //实际上4个字符
int a = atoi(str1);
printf("%d\n",a);
/*
string str2="12345";
int b=atoi(str2);
这种写法错误,()内必须是字符型数组
*/
//方法二:求和法
char arr[]={'4','3','5','1','\0'};
int i=0,temp,sum=0;
while(arr[i]){
temp = arr[i]-'0';
sum = sum*10+temp;
i++;
}
printf("%d\n",sum);
}
- 整数转换成字符串itoa
include<iostream>
include<string>
include <stdlib.h>//itoa的头文件
using namespace std;
int main(){
/****************整数转换成字符串*****************/
//方法一:itoa函数
int num1=521;
char str1[10]; //实际上4个字符
itoa(num1,str1,10);
cout<<str1<<endl;
//方法二:将整数的每位转换为字符,然后再逆序保存
int num=435,i=0,j=0;
char temp[7],str[7];
//将整数的每位转换为字符
while(num){
temp[i]=num%10+'0';
i++;
num=num/10;
}
temp[i] = 0; //最后加上字符串结束符'\0'
//cout<<temp;输出结果是534
//逆序保存
i--;
while(i>=0){
str[j]=temp[i];
i--;
j++;
}
str[j]=0; //最后加上字符串结束符'\0'
cout<<str;//输出结果是435
}