首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

atoi() 与 itoa()函数的内部兑现

2013-01-06 
atoi() 与 itoa()函数的内部实现C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字

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

C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。以下是用itoa()函数将整数转 换为字符串的一个例子:
       atoi     把字符串转换成整型数
       itoa     把一整数转换为字符串
 

[cpp] view plaincopyprint?
#include "stdio.h"  
#include "ctype.h"  
#include "stdlib.h"  
 
/*
Converts a character string into an int or long
将一个字符串转化为整数
*/ 
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; 

 
/*
Converts an int or long into a character string
将一个整数转化为字符串
*/ 
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]='\0'; 
   for(j=i-1;j>=0;j--)        //生成的数字是逆序的,所以要逆序输出  
        printf("%c",s[j]); 

 
void main() 

    int n; 
    char str[100]; 
   my_itoa(-123,str); 
    printf("\n"); 
    printf("%d\n",my_atoi("123")); 
    system("pause"); 
}

原文来自站长网

热点排行