字符串/字符与整型数据的相互转换stoi/stol()和to_string()

1.将字符串的整数字符转换成整数类型:string a="5" ------> int c=5;的函数:int c=stoi(a);

string a="5" ------> long long b=5;的函数:long long b =stol(a)

string a="5.15" ------> double c=5.15;的函数:double c= stol(a)

2.将整数转换成字符串类型:int a=5 ------> string v="5";的函数:string v=to_string(a);

double a=5 ------> string v="5";的函数:string v=to_string(a);

使用实例:

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;

int main(){
	string a;
	cin>>a;//输入3456【也就是让a="3456"】 
	int q=(int)a[0]; 
	int v=(int)'3';
	int p=stoi(a);
	cout<<"a="<<a<<endl;
	cout<<"p="<<p<<endl;
	cout<<"q="<<q<<endl;
	cout<<"v="<<v<<endl;
	string n=to_string(v);
	n+="nihao"; 
	cout<<"n="<<n<<endl; 
    return 0;
} 

浮点数也是一样的道理:

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;

int main(){
string a;
cin>>a;
double p=stod(a);
cout<<p; 
    return 0;
} 

运行结果:

浮点数的运行结果:

解析:上面的代码以【cin>>a】输入的是:3456为例:

a的数据类型是:string a="3456";

p的数据类型是:int p=3456;

string a="3456";在c/c++中可以等价为:char a4={'3','4','5','6','\0','\0',...};//后面有无穷个空字符'\0' ,

所以a0='3',字符'3'在ASCII码中的值为51,所以(int)'3'=51;此时的数据类型是int q=51,v=51。

v的数据类型是int,通过to_string(v)="51",此时的数据类型是字符串 string n="51"。字符串类型可以直接加减,所以n+="nihao"的结果是n="51nihao"。

相关推荐
一只齐刘海的猫2 小时前
【Leetcode】找到字符串中所有字母异位词
算法·leetcode·职场和发展
海清河晏1112 小时前
数据结构 | 八大排序
数据结构·算法·排序算法
Frank学习路上3 小时前
【C++】面试:关键字与语法特性
c++·面试
IronMurphy3 小时前
【算法五十七】146. LRU 缓存
算法·缓存
Irissgwe4 小时前
数据结构-栈和队列
数据结构·c++·c·栈和队列
凌波粒4 小时前
LeetCode--108.将有序数组转换为二叉搜索树(二叉树)
算法·leetcode·职场和发展
liulilittle4 小时前
KCC:在 BBR 思路上的一次探索
网络·tcp/ip·算法·bbr·通信·拥塞控制·kcc
浦信仿真大讲堂4 小时前
达索系统SIMULIA Abaqus 2026接触和约束的增强新功能介绍
人工智能·python·算法·仿真软件·达索软件
点云侠4 小时前
PCL 生成三棱锥点云
c++·算法·最小二乘法
兰令水5 小时前
leecodecode【面试150】【2026.6.13打卡-java版本】
java·算法·leetcode