目录
一、将字符转换为数字。
(首先字符必须是"0" —"9",然后转换成十进制的数字)
比如将"1234" 转换成 1234
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include <locale>
int Atoi(char *str,int len)
{
assert(str != NULL);
int i= 0;
int flag = 1;//符号位
int tmp =0;
for( ; i<len ;i++)
{
if(str[i] == '-')
{
flag = -1;
}
if(isdigit(str[i]))
{
str[i] -='0';
tmp = tmp *10 + str[i] ;
}
}
return tmp * flag;
}
int main()
{
char str[] = "1234";
int len = sizeof(str)/sizeof(str[0]);
printf("%d\n",Atoi(str,len));
return 0;
}
二、将数字转换成字符。
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
//求数字的位数
int Len(int n)
{
int len = 0;
while(n!= 0)
{
if(n == 0 )
{
return 1;
}
else
{
n/=10;
len++;
}
}
return len;
}
char *Itoa(int n)
{
int len = Len(n);
char *des= (char*)malloc(sizeof(char)*(len+1));
des[len] = '\0';
for(int i = len-1;i >= 0;i--)
{
des[i] = (n%10+'0');
n/=10;
}
return des;
}
int main()
{
int n =1234;
char *des = Itoa(n);
printf("%s\n",des);
free(des);
return 0;
}