当前位置:   article > 正文

【C++】详解 to_string 与 stoi 函数(整数转字符串-字符串转整数)_c++ stoi

c++ stoi

目录

一、前言

 二、什么是 to_string - stoi

三、to_string 

✨作用 

✨测试代码:

 四、stoi

 ✨作用

 ✨测试代码:

 五、力扣常考面试题

 ✨ 例题 1

 ✨例题 2

六、共勉


一、前言

       想必大家在做 LeetCode 算法题的时候会经常看到有使用 to_stringstoi 处理字符串,由于自己对这个类不是很了解,查了资料在这里记录一下。
       所以本文通过收集资料将其进行总结,主要介绍如何使用 to_stringstoi 处理在算法练习或竞赛中遇到的输入输出问题。

 二、什么是 to_string - stoi

      stoi(),to_string 这两个函数都是对字符串处理的函数,前者是将字符串转化为十进制 int 类型,最后一个是将十进制类型 int、double 等转化为string。
     头文件都是:#include <string>

三、to_string 

✨作用 

将整数转换为字符串

功能:将数字常量(int,double,long等)转换为字符串(string),返回转换好的字符串

  ✨测试代码:

  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4. int main()
  5. {
  6. int num = 123456789;
  7. string s = to_string(num); // "123456789"
  8. cout << s << endl;
  9. return 0;
  10. }

 四、stoi

 ✨作用

将 n 进制的字符串转化为十进制
stoi(字符串,起始位置,n进制(默认10进制)),将 n 进制的字符串转化为十进制
 

 ✨测试代码:

  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4. int main()
  5. {
  6. string str = "100";
  7. int x = stoi(str, 0, 2); //将二进制"100"转化为十进制x
  8. cout << x << endl;
  9. return 0;
  10. }

 五、力扣常考面试题

 ✨ 例题 1

例题1 :反转两次数字
链接:反转两次数字

  1. class Solution {
  2. public:
  3. bool isSameAfterReversals(int num)
  4. {
  5. if(num==0)
  6. {
  7. return true;
  8. }
  9. // 第一次反转
  10. string s = to_string(num);
  11. reverse(s.begin(),s.end());
  12. int len1 = stoi(s);
  13. // 第二次反转
  14. string s1 = to_string(len1);
  15. reverse(s1.begin(),s1.end());
  16. int len2 = stoi(s1);
  17. // 判断
  18. if(len2==num)
  19. {
  20. return true;
  21. }
  22. else
  23. {
  24. return false;
  25. }
  26. }
  27. };

 ✨例题 2

题目:整数反转
链接:整数反转

  1. class Solution {
  2. public:
  3. int reverse(int x)
  4. {
  5. // to_string 函数的主要作用是将 整形 转换为 字符串
  6. string s = to_string(x);
  7. int l = 0;
  8. // 考虑 负数
  9. if(s[l]=='-')
  10. {
  11. l++;
  12. }
  13. // 将 数据部分 进行反转
  14. std::reverse(s.begin()+l,s.end());
  15. // INT_MAX 和 INT_MIN 是C++内置的常量
  16. const int k1 = INT_MAX,k2 = INT_MIN;
  17. string t1 = to_string(k1),t2 = to_string(k2);
  18. if(s[0]=='-')
  19. {
  20. if(s.size()==t2.size() && s > t2)
  21. {
  22. return 0;
  23. }
  24. }
  25. else
  26. {
  27. if(s.size()==t1.size() && s > t1)
  28. {
  29. return 0;
  30. }
  31. }
  32. // stoi() 将字符串转换为 整形
  33. x = stoi(s);
  34. return x;
  35. }
  36. };

六、共勉

       以下就是我对 to_string 与 stoi 函数 的理解,如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对C++  vector 类的理解,请持续关注我哦!!!  

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/749208
推荐阅读
相关标签
  

闽ICP备14008679号