//字符串转整数
int my_atoi(char* str)
{
assert(str);
int s = 0;
int flag = 1;
while ((*str) == ' ') //去掉空格
{
str++;
}
if (*str == '-')
{
flag = -1;
str++;
}
while (*str != '\0')
{
s = s * 10 + (*str - '0');
str++;
}
return s;
}
itoa模拟:
void Reverse(char* str) //辅助函数
{
char* start = str;
char* end = str;
while ((*end) != '\0')
{
end++;
}
end--;
while (start != end && start < end)
{
swap(*start, *end);
start++;
end--;
}
}
char* My_Itoa(int val,char*str)
{
int i = 0;
char flag = 0;
if (val < 0)
{
flag = '-';
val = -val;
}
while (val)
{
str[i++] = val % 10 + '0';
val = val / 10;
}
if (flag == '-')
{
str[i] = flag;
}
//反顺序
Reverse(str);
return str;
}