I have a function via Rcpp that reverses an integer
#include <Rcpp.h>
using namespace Rcpp;
//' Reverse an integer
//'
//' @param x A single integer.
//' @export
// [[Rcpp::export]]
int reverse_integer(int x) {
int reverse = 0;
while(x != 0){
int remainder = x%10;
reverse = reverse*10 + remainder;
x/=10;
}
return reverse;
}
This works fine for numbers without leading or trailing zeroes
reverse_integer(123) == 321
However, when there are zeroes, they will get stripped, i.e.,
reverse_integer(100) == 1
How can I best modify this function so I can still operate on it as an integer, but without losing zeroes?