当前位置:编程学习 > 网站相关 >>

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"); 
}
补充:综合编程 , 其他综合 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,