#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int Myatoi(const char* str)
{
if(str==NULL)//判斷指針是否為空
{
printf("Pointer is NULL\0");
return 0;
}
while(*str==' ')//忽略前導空字元
str++;
int sign=1;//判斷符号
if(*str=='-')
sign=-1;
if(*str=='+' || *str=='-')
++str;//str指向符号位的後一位
int integer=0;
while(*str<='9' && *str>='0'){
integer=integer*10+*str-'0';
++str;
}
return integer*sign;
}
char* Myitoa(int value,char *str)
{
if(value==0)
return "0";
int sign=1;
char *tempStr=str;
if(value<0){
str[0]='-';//第一個是負号
value=-value;
sign=-1;
str++;
}
while(value!=0){
*str=value%10+'0';
value=value/10;
++str;
}
*str='\0';
if(sign==1){//無符号時從0開始逆序
int i=0;
int j=strlen(tempStr)-1;//注意此處下标的值
while(i<j)
{
char temp;
temp=tempStr[i];
tempStr[i]=tempStr[j];
tempStr[j]=temp;
i++;
j--;
}
}else{
int i=1;//有符号時從1開始逆序
int j=strlen(tempStr)-1;//注意此處下标的值
while(i<j)
{
char temp;
temp=tempStr[i];
tempStr[i]=tempStr[j];
tempStr[j]=temp;
i++;
j--;
}
}
return tempStr;
}
int main()
{
int value=-10;
char str[100];
printf("%s\n",Myitoa(value,str));
return 0;
}