C/C++ atoi、atof与itoa函数的实现
2017-10-07 14:40
627 查看
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缩进等)。
其形式为: 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;
}
{
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; }2.itoa(integer to ascii)将任意类型的数字转换为字符串。在<stdlib.h>中与之有相反功能的函数是atoi。
其形式为: 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;
}
相关文章推荐
- C++中atof函数的实现和atoi的实现
- strcpy,strcat, strcmp, atoi, itoa函数原型实现
- C函数的实现(strcpy,atoi,atof,itoa,reverse)
- C/C++_atoi,itoa功能及其实现原理
- c语言实现atoi和itoa函数。
- 模拟实现atoi和itoa函数
- atoi和itoa函数的实现
- String to Integer (atoi) C++实现
- C/C++ 实现 atoi 函数
- 自己实现atoi和atof
- c++实现atoi()和itoa()函数(字符串和整数转化)
- atoi(),atof等函数的实现
- strcpy,strcat, strcmp, atoi, itoa函数原型实现
- C实现memomove,memocpy,memoicmp,atoi,itoa函数
- c++ 实现atoi()函数
- atoi和itoa函数的实现
- atoi(c++实现)
- atoi C++ 实现
- 自己实现的atof()和atoi()代码
- 【练习题】atoi和itoa函数的实现