基于atoi()与itoa()函数的内部实现方法详解
基于atoi()与itoa()函数的内部实现方法详解
发布时间:2016-12-28 来源:查字典编辑
摘要:C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。以下是用itoa()函数将整数转换为字符串的一个例子...

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

atoi 把字符串转换成整型数

itoa 把一整数转换为字符串

复制代码 代码如下:

#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]='';

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("%dn",my_atoi("123"));

system("pause");

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C语言学习
热门C语言学习
编程开发子分类