#include <stdio.h>
#include <string.h>
char *itoa(int num, char *str, int index)
{
int isNegative, len;
char tmp;
char *tail = str, *head = str;
if ((isNegative = num) < 0)
{
num = -num;
}
do
{
*tail++ = num % index + '0';
num = num / index;
}while(num > 0);
if (isNegative < 0)
{
*tail = '-';
*(tail + 1) = '\0';
}
else
{
*tail = '\0';
tail--;
}
len = strlen(str);
for(int j = 0; j < len/2; j++)
{
tmp = *head;
*head++ = *tail;
*tail-- = tmp;
}
return str;
}
int main(int argc, char argv[])
{
int num;
char str[100];
printf("input a integer number:\n");
scanf("%d", &num);
printf("int=%d, str=%s\n", num, itoa(num, str, 10));
return 0;
}
#include <stdio.h>
#include <string.h>
int atoi(char *str)
{
int sign = 1, val = 0;
char *s = str;
if (*s == '-')
{
sign = -1;
s++;
}
while(*s != '\0')
{
val =val*10 + (*s - '0');
s++;
}
return val*sign;
}
int main(int argc, char argv[])
{
int num;
char str[100];
printf("input a string:\n");
scanf("%s", str);
printf("str=%s, str=%d\n", str, atoi(str));
return 0;
}