目录
一、前言
二、什么是 to_string - stoi
三、to_string
✨作用
✨测试代码:
四、stoi
✨作用
✨测试代码:
五、力扣常考面试题
✨ 例题 1
✨例题 2
六、共勉
一、前言
想必大家在做 LeetCode 算法题的时候会经常看到有使用 to_string 和 stoi 处理字符串,由于自己对这个类不是很了解,查了资料在这里记录一下。
所以本文通过收集资料将其进行总结,主要介绍如何使用 to_string 和 stoi 处理在算法练习或竞赛中遇到的输入输出问题。
二、什么是 to_string - 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;}
四、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 与 stoi 函数 的理解,如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对C++ vector 类的理解,请持续关注我哦!!!