数字转字符串
这里首先用到一个数组逆置函数如下
void reverse(char *arr)//逆置{char *p = arr;char tmp;while(*p != ‘\0’){p ++;}for(–p;arr < p;arr++,p–){tmp = *arr;*arr = *p;*p = tmp;}}
将arr数组逆置
因为将一个数字转成字符串,若果是从右往左依次获得,操作较容易,所以以此得到的字符串是数字的逆序字符串,所以要逆置,才可得到顺序
代码如下
void myitoa(char *arr,const int n,const int ind)//数字转字符串{int t = n;int a;int i = 0;const char *table = “0123456789ABCDEFGHIGKLMNOPQRSTUVWXYZ”;while(t != 0){a = t%ind;arr[i++] = table[a];//i++;t /= ind;}arr[i] = ‘\0’;reverse(arr);}
将要保存字符串的数组arr传进来方便操作,待转换数字n,带转换进制ind,制作一个表table,方便转换,使得数字进行取余操作直接根据结果查找对应下标的表元素,进行生成字符串
字符串转数字
int myatoi(char *arr,const int ind)//表示数字的字符串转数字,arr中的数字是进制为ind的数字{int sum = 0;int a;while(*arr != ‘\0’){if((*arr-‘0’)>9){a = *arr – ‘A’ + 10;}else{a = *arr – ‘0’;}sum = sum * ind + a;*arr ++;}return sum;}
这里默认字符串为表示合法数字的字符串,ind为该字符串形式数字的进制,默认全转为10进制数字保存在sum中返回