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

本文介绍了C++中的to_string和stoi函数,用于字符串与整数之间的转换,通过实例和面试题展示了它们在算法竞赛中的应用。
摘要由CSDN通过智能技术生成

目录

一、前言

 二、什么是 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),返回转换好的字符串

  ✨测试代码:

#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"转化为十进制x
	cout << 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 类的理解,请持续关注我哦!!!  

  • 16
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值