atoi和itoa函数

来源:互联网 发布:数据线线芯材质分类 编辑:程序博客网 时间:2024/05/19 03:22
#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;}

0 0
原创粉丝点击