转载请标明出处:http://www.cnblogs.com/NongSi-Net/p/6805844.html
今天主要总结下:完成编程:
1、除printf函数之外,不用任何c语言库函数,实现将字符串转化为整数的函数myatoi(可以支持负整数的转化)。
2、除printf函数之外,不用任何c语言库函数,实现将整数转化为字符串的函数myitoa(可以支持负整数的转化)。
如果想理解这个问题,必须知道一个知识:
字符‘0’+一个整数,则得到这个整数的字符型。反之,字符型-字符‘0’则得到整数值。
如:‘0’+9=‘9’;
‘9’-‘0’=9;
代码如下:
/* ============================================================================ Name : mystoi.c Author : Version : Copyright : Your copyright notice Description : Hello World in C, Ansi-style ============================================================================ */#includevoid mylength(int a,int *lenth){ int i = 0; if(lenth == NULL) { printf("mylength fun error\n"); } do { a = a / 10; i++; }while(a); *lenth = i;}void reserve(int lenth,char buf[]){ int i = 0; char temp; for(i = 0;i < 0) a = -a; for(i = 0;i ='0'&&buf[i]<='9') { sum = sum*10+(buf[i] - '0'); i++; } else return 0; } sum = sum * flag; return sum;}int main(void) { int abc = 123456789; char arr[1024] = "--+1836"; int length = 0; char buf[1024] = { 0}; printf("the following thing is myitoa...Int---->string\n\n"); myitoa(abc,buf); printf("the string is %s.\n\n",buf); printf("the following thing is myatoi...string---->Int\n\n"); slength(arr,&length); printf("the string's length is %d.\n\n",length); printf("the Intger is %d.\n\n",myatoi(arr)); return 0;}