- 库函数 atoi 的模拟实现
用法:将字符串里的数字字符转化为整形数,返回整形值。
int my_atoi(char* ptr)
{
assert(ptr);
int flag = 0;
int num = 0;
char* pch = ptr;
while (*ptr)
{
if (*pch == '-')
{
flag = 1;
}
else if (*ptr>'0'&&*ptr<'9')
{
num = num*10 + *ptr - '0';
}
ptr++;
}
if (flag == 1)
{
return -num;
}
else
{
return num;
}
}
int main()
{
char *tr = "1234";//"+1234"、"-1234"
my_atoi(tr);
printf("%d\n",my_atoi(tr));
system("pause");
return 0;
}
- 库函数 itoa 的模拟实现
用法:将整形转化为字符串,返回字符串。
char* my_itoa(int num, char* array)
{
assert(array);
int i = 0;
int flag = 0;
if (num < 0)
{
flag = 1;
num = -num;
}
while (num)
{
array[i] = num % 10 + '0';
num = num / 10;
++i;
}//此时的i已经到4
if (flag == 1)
{
array[i++] = '-';//注意i的变化
}
array[i] = '\0';//注意i的变化
int begin = 0;
int end = i-1;//注意i的变化
while (end > begin)
{
char tmp = array[end];
array[end] = array[begin];
array[begin] = tmp;
--end;
++begin;
}
return array;
}
int main()
{
int x;
scanf("%d", &x);
char arr[100];
printf("%s\n", my_itoa(x, arr));
system("pause");
return 0;
}
上面就是两个库函数的模拟实现,如果有什么问题或者有更好的方法可以评论或私信。