1.atoi(ascii to integer)是把字符串转换成整型数的一个函数.atoi()函数会扫描参数 nptr字符串,跳过前面的空白字符(例如空格,tab缩进等)。
int atoi(char s[])
{
int i, n;
n = 0;
for (i = 0; s[i] >= '0'&&s[i] <= '9'; ++i)
n = 10 * n + (s[i] - '0');
return n;
}
2.atof(ascii to float)是把字符串转换为浮点数的一个函数。atof()函数会扫描参数nptr字符串,跳过前面的空白字符(例如空格,tab缩进等)。
double atof(char s[])
{
double val, power;
int i, sign;
for (i = 0; isspace(s[i]); i++)
;
sign = (s[i] == '-') ? -1 : 1;
if (s[i] == '+' || s[i] == '-')
i++;
for (val = 0.0; isdigit(s[i]); i++)
val = 10.0*val + (s[i]-'0');
if (s[i] == '.')
i++;
for (power = 1.0; isdigit(s[i]); i++) {
val = 10.0*val + (s[i] - '0');
power *= 10.0;
}
return sign*val / power;
}
其形式为: char *itoa(int value,char *string,int radix)
int value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等。
char *
Itoa(int num, char *str, int radix)
{
char index[] = "0123456789ABCDEF";
unsigned unum;
int i = 0, j, k;
if (radix == 10 && num < 0)
{
unum = (unsigned)-num;
str[i++] = '-';
}
else
unum = (unsigned)num;
do {
str[i++] = index[unum % (unsigned)radix];
unum /= radix;
} while (unum);
str[i] = '\0';
if (str[0] == '-')
k = 1;
else
k = 0;
char temp;
for (j = k; j <= (i - 1) / 2; j++)
{
temp = str[j];
str[j] = str[i-1+k-j];
str[i - 1 + k - j] = temp;
}
return str;
}