目录
一、前言
二、什么是 to_string - to_stoi
三、to_string
✨作用
✨测试代码:
四、to_stoi
✨作用
✨测试代码:
五、力扣常考面试题
✨ 例题 1
✨例题 2
六、共勉
一、前言
想必大家在做 LeetCode 算法题的时候会经常看到有使用 to_string 和 to_stoi 处理字符串,由于自己对这个类不是很了解,查了资料在这里记录一下。
所以本文通过收集资料将其进行总结,主要介绍如何使用 to_string 和 to_stoi 处理在算法练习或竞赛中遇到的输入输出问题。
二、什么是 to_string - to_stoi
stoi(),to_string 这两个函数都是对字符串处理的函数,前者是将字符串转化为十进制 int 类型,最后一个是将十进制类型 int、double 等转化为string。
头文件都是:#include <string>
三、to_string
✨作用
将整数转换为字符串
功能:将数字常量(int,double,long等)转换为字符串(string),返回转换好的字符串
✨测试代码:
#include<iostream>
#include<cstring>
using namespace std;int main()
{int num = 123456789;string s = to_string(num); // "123456789"cout << s << endl;return 0;
}
四、to_stoi
✨作用
将 n 进制的字符串转化为十进制
stoi(字符串,起始位置,n进制(默认10进制)),将 n 进制的字符串转化为十进制
✨测试代码:
#include <iostream>
#include <cstring>using namespace std;int main()
{string str = "100";int x = stoi(str, 0, 2); //将二进制"100"转化为十进制xcout << x << endl;return 0;
}
五、力扣常考面试题
✨ 例题 1
例题1 :反转两次数字
链接:反转两次数字
class Solution {
public:bool isSameAfterReversals(int num) {if(num==0){return true;}// 第一次反转string s = to_string(num);reverse(s.begin(),s.end());int len1 = stoi(s);// 第二次反转string s1 = to_string(len1);reverse(s1.begin(),s1.end());int len2 = stoi(s1);// 判断if(len2==num){return true;}else{return false;}}
};
✨例题 2
题目:整数反转
链接:整数反转
class Solution {
public:int reverse(int x) {// to_string 函数的主要作用是将 整形 转换为 字符串string s = to_string(x);int l = 0;// 考虑 负数if(s[l]=='-'){l++;}// 将 数据部分 进行反转std::reverse(s.begin()+l,s.end());// INT_MAX 和 INT_MIN 是C++内置的常量const int k1 = INT_MAX,k2 = INT_MIN;string t1 = to_string(k1),t2 = to_string(k2);if(s[0]=='-'){if(s.size()==t2.size() && s > t2){return 0;}}else{if(s.size()==t1.size() && s > t1){return 0;}}// stoi() 将字符串转换为 整形x = stoi(s);return x;}
};
六、共勉
以下就是我对 to_string 与 to_stoi 函数 的理解,如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对C++ vector 类的理解,请持续关注我哦!!!