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 }
文章来源: C++_数据类型转换