int my_atoi(char*str)
{
if (str == NULL)
return 0;
bool flag = true;
if (*str++ == '-')
flag=false;
int res = 0;
while (*str >= '0'&&*str <= '9')
{
res = res*10+(*str - '0');
str++;
}
if (flag == false)
res = 0 - res;
return res;
}
char* my_itoa(int num, char*str, int radix)//转为radix进制
{ /*索引表*/
char index[] = "0123456789ABCDEF";
unsigned unum;/*中间变量*/
int i = 0, j, k;
/*确定unum的值*/
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;
}
07-20
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交