赞
踩
目录
想必大家在做 LeetCode 算法题的时候会经常看到有使用 to_string 和 stoi 处理字符串,由于自己对这个类不是很了解,查了资料在这里记录一下。
所以本文通过收集资料将其进行总结,主要介绍如何使用 to_string 和 stoi 处理在算法练习或竞赛中遇到的输入输出问题。
stoi(),to_string 这两个函数都是对字符串处理的函数,前者是将字符串转化为十进制 int 类型,最后一个是将十进制类型 int、double 等转化为string。
头文件都是:#include <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;
- }
将 n 进制的字符串转化为十进制
stoi(字符串,起始位置,n进制(默认10进制)),将 n 进制的字符串转化为十进制
- #include <iostream>
- #include <cstring>
-
- using namespace std;
-
- int main()
- {
- string str = "100";
- int x = stoi(str, 0, 2); //将二进制"100"转化为十进制x
- cout << x << endl;
- return 0;
- }
例题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;
- }
- }
- };
题目:整数反转
链接:整数反转
- 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 类的理解,请持续关注我哦!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。