zoukankan      html  css  js  c++  java
  • 字符串与数字互相转换算法

    自己看代码

    #include <stdio.h>
    void toString(int number, char *str);
    void toInt(char *str, int *number);
    void main() 
    {
        char str1[20],str2[20];
        int number;
        toString(123,str1);
        toString(-123,str2);
    
        toInt("500",&number);
        printf("%s
    ",str1);
        printf("%s
    ",str2);
        printf("%d
    ",number);
        getchar();
    }
    void toString(int number,char *str)//数字转字符串算法实现
    {
        int isNegative = 0;//默认为非负数
        int i,j;
        char temp;
        isNegative = number < 0 ? (number*=-1,1) :0;//判断是否为负数,巧用逗号表达式,可以省一行(哈哈)
        for (i = 0; number != 0; i++)//反向逐一取得字符,最后反转
        {
            str[i] = (char)(number % 10+48);
            number /= 10;
        }
    
        if (isNegative)//负数处理
        {
            str[i++] = '-';
            str[i--] = 0;
        }
        else//正数处理
            str[i--] = 0;//i++,可以使得i正好等于字符个数,又省了三行(低调)
    
        for (j = 0; j <= i / 2; j++)//字符数组反转,3个字符换两次,4个换两次,奇偶通用(数组反转算法)
        {
            temp = str[j];
            str[j] = str[i - j];
            str[i - j] = temp;
        }
    }
    void toInt(char *str,int *number)//字符串转数字算法实现
    {
        int i;
        *number = 0;//强制初始化
        for (i = 0; str[i] != 0; i++)
            *number = (int)(str[i] - 48) + *number * 10;//逐一取字符转换为数字,并升权放入number
    }
  • 相关阅读:
    MIT Linear Algebra#4 Determinants
    MIT Linear Algebra#3 Orthogonality
    MIT Linear Algebra#2 Vector Spaces and Subspaces
    MIT Linear Algebra#1 Solving Linear Equations
    MIT Linear Algebra#0 Introduction to Vectors
    Image Filter and Recover
    Computational Geometry
    TOP-K Problems
    pat 1151 LCA in a Binary Tree
    上传文件到git仓库中
  • 原文地址:https://www.cnblogs.com/chaeyeon/p/5910848.html
Copyright © 2011-2022 走看看