• B00006 函数itoa()


    这是一个通用的基础程序,将整型数转换为数字字符串

    其中需要用到字符串逆序转换函数reverse()。

    该程序来自K&C的《C程序设计语言》一书。

    程序如下:

    /* itoa 带符号的整数转换字符串 */
    
    #include <stdio.h>
    
    #include <string.h>
    void reverse(char s[])
    {
        int i,j;
        int c;
    
        for(i=0,j=strlen(s)-1; i<j;i++,j--)
        {
            c = s[i];
            s[i] = s[j];
            s[j] = c;
        }
    }
    
    void itoa(int n,char s[])
    {
        int sign;
    
        if((sign=n) < 0)
            n = -n;
    
        int i=0; //index of s
        do
        {
            s[i] = n%10 + '0';
            i++;
        }
        while((n /= 10)>0);
    
        if(sign <0)
        {
            s[i++] = '-';
        }
    
        s[i] = '';
        reverse(s);
    }
    
    int main(void)
    {
        char s[1024];
    
        itoa(-567, s);
        printf("%d %s
    ", -567, s);
    
        itoa(1234567, s);
        printf("%d %s
    ", 1234567, s);
    
        itoa(-1234567, s);
        printf("%d %s
    ", -1234567, s);
    
        return 0;
    }
    关键代码:

    #include <string.h>
    void reverse(char s[])
    {
        int i,j;
        int c;
    
        for(i=0,j=strlen(s)-1; i<j;i++,j--)
        {
            c = s[i];
            s[i] = s[j];
            s[j] = c;
        }
    
        //int m = N;
    }
    
    void itoa(int n,char s[])
    {
        int sign;
    
        if((sign=n) < 0)
            n = -n;
    
        int i=0; //index of s
        do
        {
            s[i] = n%10 + '0';
            i++;
        }
        while((n /= 10)>0);
    
        if(sign <0)
        {
            s[i++] = '-';
        }
    
        s[i] = '';
        reverse(s);
    }
    运行结果:

    -567 -567
    1234567 1234567
    -1234567 -1234567

  • 相关阅读:
    我是一个垃圾程序员
    前谷歌高管给初入职场新人的14条忠告
    儿童节过完了
    两块网卡实现多台机器共享上网
    Python下载prettyloaded的swf
    关于mysql的1067与1045错误
    不使用定时器实现iframe的自适应高度
    JavaScript的大数阶乘
    两道函数式编程题
    字符串比较
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564864.html
Copyright © 2020-2023  润新知