zoukankan      html  css  js  c++  java
  • 将数字转化为字符串

    面试的时候问到的一个问题,如何将一个数字转化为字符串,如果可以使用库函数的话,sprintf会是一个很好的选择,例如sprintf(s, "%d", 123); //产生"123",sprintf(s, "%10.3f", 3.1415626); //产生:" 3.142"。但是不允许使用库函数的话,就需要自己去思考怎么转化,自己在网上搜索了下原函数,自己实现了下,代码贴下:

     1 void itoa(int num,char str[])
     2 {
     3     int flag=num;            
     4     int i=0;
     5     int j=0;
     6     char temp[100];
     7     if(flag<0)            //判断数字是否为负数,如果为负数把它转化为正数
     8         {
     9             num=-num;
    10         }
    11     while(num>0)            
    12     {
    13         temp[i]=(num%10)+'0';    
    14         /*把数字从个位开始分解,求出来的数字加上0的ascii码即为该数字的ascii码*/
    15         num=num/10;
    16         i++;
    17     }
    18     if(flag<0)
    19     {
    20         temp[i]='-';        //如果判断之前的数为负数,向数组最后添加一个'-'
    21     }
    22     temp[i]='';            
    23     i--;
    24     while(i>=0)
    25     {
    26         str[j]=temp[i];        //将temp数组逆序输入到str数组中
    27         j++;
    28         i--;
    29     }
    30     str[j]='';
    31     printf("%s",str);
    32 }

    大家可以看下,有什么不对的可以指出,明天介绍下atoi函数的实现。

  • 相关阅读:
    属于程序员的算法
    知乎:全栈工程师讨论
    盘点2015年前20款表现出色的免费开源软件
    qt学习之路
    ubuntu联网经常掉线的解决方法
    备份书签
    linux 命令行测试网速
    linux中判断ssh是否启动
    php heredoc 与 nowdoc
    php 双向队列类
  • 原文地址:https://www.cnblogs.com/kingos/p/4506489.html
Copyright © 2011-2022 走看看