本文主要是介绍面试: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]='\0';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:\n");gets(s);printf("%d\n",my_atoi(s));my_itoa(-123,str);printf("\n");printf("%d\n",my_atoi("123"));system("pause");
}
这篇关于面试:atoi() 与 itoa()函数的内部实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!