比较2个int长度C ++

时间:2015-08-10 05:46:40

标签: c++ string std

我试图比较整数长度的数字长度,并用0'填充最小的长度,因此它们都是相同的大小,即:

6 and 1500 

变为

0006 and 1500

我无法让 std :: stoi 工作,然后检查每个数字的长度。

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int schoolMethod(int a, int b, int base){

if(std::stoi(a)<std::stoi(b)){
  //do stuff  
  return 0;
  }
}


karatsuba.cpp: In function ‘int schoolMethod(int, int, int)’:
karatsuba.cpp:50: error: ‘stoi’ is not a member of ‘std’

2 个答案:

答案 0 :(得分:1)

stoi将 Const String 作为参数,但在此您将int传递给它。

使用std::to_string方法将int转换为string,然后比较它们的长度。

答案 1 :(得分:1)

如果您想将您的整数转换为字符串以比较长度,以下是如何基本执行此操作的指南。

std::to_string()会将您的整数转换为字符串,以便您可以比较它们。

然后

string.length()将返回字符串的长度。

#include <string>

int schoolMethod(int a, int b, int base){
    std::string stringa = std::to_string(a); //convert to string
    std::string stringb = std::to_string(b); //convert to string
    if(stringa.length()<stringb.length()){ //compare string lengths
      //do stuff  
      return 0;
    }
}