zoukankan      html  css  js  c++  java
  • C语言实现整数转字符串

     1 #include <stdio.h>
     2 
     3 void intToString(int N,char arr[]){
     4     //仅支持有符号4字节的int类型,范围-2147483648 - 2147483647
     5     int i,j,flag;
     6     char stack[10]; //栈,int的最值最多10位
     7     i=0; //计数器
     8     if (N<0){
     9         flag=0; //N是负数
    10         N=-N;
    11         //把N转为正数,注意,如果N是-2147483648,那么N=-N的结果还是-2147483648
    12         //因为-N表达式将-2147483648转为2147483648,而2147483648对于4字节int来说是溢出的,这个溢出的数又变成了-2147483648
    13         //这时,程序会计算异常
    14         //解决方法,可以在函数开始时加个if语句,将这个值排除或当作特例
    15     }else{
    16         flag=1; //N是正数
    17     }
    18     while (N/10!=0){//说明N还不是一位数,继续拆
    19         stack[i]=(char)(48+N%10); //字符的1 - 数字的1 = 48,N%10获取N的个位数,并把转换后的字符入栈
    20         N=N/10;
    21         i++;
    22     }
    23     stack[i]=(char)(48+N); //当循环结束,N必定是一个一位数
    24     if (flag==0){//如果N是负数,需要在字符串最前面加负号
    25         arr[0]='-';
    26         for (j=i;j>-1;j--){//将栈中的字符出栈,j=i+1是因为数组arr的0元素已经保存负号了
    27             arr[i-j+1]=stack[j];
    28         }
    29         arr[i+2]=''; //添加字符串结束标志
    30     }else{
    31         for (j=i;j>-1;j--){//将栈中的字符出栈
    32             arr[i-j]=stack[j];
    33         }
    34         arr[i+1]='';
    35     }
    36 }
    37 
    38 int main(){
    39     char myarr[15];
    40     /* 测试 */
    41     intToString(15,myarr);
    42     printf("%s
    ",myarr);
    43     intToString(-90,myarr);
    44     printf("%s
    ",myarr);
    45     intToString(2147483647,myarr);
    46     printf("%s
    ",myarr);
    47     intToString(-2147483647,myarr);
    48     printf("%s
    ",myarr);
    49     intToString(0,myarr);
    50     printf("%s
    ",myarr);
    51     return 0;
    52 }

    运行截图:

  • 相关阅读:
    浅水方程
    Delaunay三角剖分算法
    计算机图形学知名期刊杂志(转载)
    Sql 主键自增
    Skinny triangle
    开源免费天气预报接口API以及全国所有地区代码!!
    Navier Stokes(纳维叶-斯托克斯)方程
    java.util.Date_与_java.sql.Date互转_及_字符串转换为日期时间格式
    2015最后一天
    html标签
  • 原文地址:https://www.cnblogs.com/ryzz/p/12275236.html
Copyright © 2011-2022 走看看