zoukankan      html  css  js  c++  java
  • 面试:atoi() 与 itoa()函数的内部实现(转)

    面试:atoi() 与 itoa()函数的内部实现

    #include <stdio.h>
    #include <ctype.h>
    #include <stdlib.h>
    
    int my_atoi(char s[])
    {
        int i,n,sign;
        for(i=0;isspace(s[i]);i++); //跳过空白
        sign=(s[i]=='-')?-1:1;
        if(s[i]=='+'||s[i]=='-') //跳过符号位
        i++;
        for(n=0;isdigit(s[i]);i++)
        n=10*n+(s[i]-'0'); //将数字字符转换成整形数字
        return sign*n;
    }
    void my_itoa(int n,char s[])
    {
    	int i,j,sign;
    	if((sign=n)<0) //记录符号
    	n=-n; //使n成为正数
    	i=0;
    	do
    	{
    	s[i++]=n%10+'0'; //取下一个数字
    
    	}while((n/=10)>0); //循环相除
    
    	if(sign<0)
    	s[i++]='-';
    	s[i]='';
    	for(j=i-1;j>=0;j--) //生成的数字是逆序的,所以要逆序输出
    	printf("%c",s[j]);
    
    }
     int main()
     {
        int n;
        char str[100];
        char s[10];
        printf("Please input a string of number:
    ");
        gets(s);
        printf("%d
    ",my_atoi(s));
        my_itoa(-123,str);
        printf("
    ");
        printf("%d
    ",my_atoi("123"));
        system("pause");
    }
    

     

  • 相关阅读:
    UML序列图
    接口初探
    Discuz初探
    Vim指令学习
    UCenter Home代码研读之space.php
    建站须知
    linux指令之文件的创建、查询、修改
    InitPHP初探
    php环境搭建
    Zend Framework学习之Zend_Db 数据库操作
  • 原文地址:https://www.cnblogs.com/mwl523/p/10730333.html
Copyright © 2011-2022 走看看