C++ 反十进制数

C++ 反十进制数,c++,C++,如何反转十进制数。我写了这段代码,但反转了整数 #include <stdio.h> #include <conio.h> #include <iostream> #include <math.h> long reverse(long); int main() { long n, r; scanf("%ld", &n); r = reverse(n); printf("%ld\n", r); getch

如何反转十进制数。我写了这段代码,但反转了整数

#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <math.h>
long reverse(long);

int main()
{
   long n, r;

   scanf("%ld", &n);

   r = reverse(n);

   printf("%ld\n", r);
   getch();
   return 0;
}

long reverse(long n)
{
   static long r = 0;

   if (n == 0) 
      return 0;

   r = r * 10;
   r = r + n % 10;
   reverse(n/10);
   return r;
}
#包括
#包括
#包括
#包括
长反转(长);
int main()
{
长n,r;
scanf(“%ld”、&n);
r=反向(n);
printf(“%ld\n”,r);
getch();
返回0;
}
长反转(长n)
{
静态长r=0;
如果(n==0)
返回0;
r=r*10;
r=r+n%10;
反向(n/10);
返回r;
}
我无法分离小数点的整数。
我应该怎么做。

使用@GManNickG提交的:

#include <stdio.h>
#include <string.h>

void reverse_string(char *str);

int main(){   
  char number_to_reverse[256];

  scanf("%s",number_to_reverse);

  reverse_string(number_to_reverse);

  printf("%s",number_to_reverse);

  return 0; 
}

 void reverse_string(char *str) {
    /* skip null */
    if (str == 0)
    {
      return;
    }

    /* skip empty string */
    if (*str == 0)
    {
      return;
    }

    /* get range */
    char *start = str;
    char *end = start + strlen(str) - 1; /* -1 for \0 */
    char temp;

    /* reverse */
    while (end > start)
    {
      /* swap */
      temp = *start;
      *start = *end;
      *end = temp;

      /* move */
      ++start;
      --end;
    }
 }
#包括
#包括
无效反向_字符串(char*str);
int main(){
字符编号_至_反向[256];
scanf(“%s”,数字从0到0的倒数);
反向字符串(从数字到反向);
printf(“%s”,数字从0到0的倒数);
返回0;
}
无效反向_字符串(char*str){
/*跳过空值*/
如果(str==0)
{
返回;
}
/*跳过空字符串*/
如果(*str==0)
{
返回;
}
/*射程*/
char*start=str;
char*end=start+strlen(str)-1;/*-1表示\0*/
焦炭温度;
/*逆转*/
while(结束>开始)
{
/*交换*/
温度=*开始;
*开始=*结束;
*结束=温度;
/*移动*/
++开始;
--结束;
}
}

一种可能的方法是将数字作为字符串读取,然后将其拆分为两个数字。。。另外,因为你使用C++,我推荐CIN而不是Snffu你没有搜索,是吗?比如Read 25=52