• 整数转换为字符串


    因为64位下INT_MAX其长度不超过20,故此处将字符串数组传递进函数。

    int num2str(int num,char str[])
    {
        char c;
        int i=0, j=0, k=0, tmp = num > 0 ? num : -1 * num;
    
        if (num > INT_MAX || num < INT_MIN) return -1;
    
        if (num<0)
        {
            str[i++] = '-'; ++j;
            num *= -1; //求余需要注意转换为正数,因为-1111%10==-1
        }
        else if (0==num)
        {
            str[0] = '0'; str[1] = ''; return 0;
        }
    
        while (tmp)
        {
            str[i] = tmp % 10 + '0';
            ++i; tmp /= 10;
        }
    
        k = i - 1;
        while (j<k) //字符串转换
        {
            c = str[j];
            str[j] = str[k];
            str[k] = c;
            j++; k--;
        }
        str[i] = '';
    
        return 0;
    }

    此处考虑了整数为正或为负的情况,但是存在一个问题,main里传递进的数字如果溢出,则函数中的数字截然不同。

    在程序员面试宝典靠中问题:为什么

    char* strcpy(char* strDest, const char* strSrc)
    

    要返回char*,不是已经复制了吗?

    答:构造链式表达式,诸如

    int len = strlen(strcpy(strDest, "hello world"));
  • 相关阅读:
    一个列表如何根据另一个列表进行排序(数组的相对排序)
    汉诺塔问题
    python面向对象基础
    python爬虫
    软件开发目录规范
    python--->包
    编译python文件
    python文件的俩种用途
    python模块的搜索路径
    python 循环导入的问题
  • 原文地址:https://www.cnblogs.com/jason1990/p/4675044.html
Copyright © 2020-2023  润新知