itoa():
將整型值轉換為字符串
頭文件stdio.h 或 stdlib.h
itoa()函數有3個參數:
第一個參數是要轉換的數字,
第二個參數是要寫入轉換結果的目標字符串,
第三個參數是轉移數字時所用 的基數。轉換基數為10。10:十進制;2:二進制...
itoa並不是一個標准的C函數,它是Windows特有的,如果要寫跨平台的程序,請用sprintf。可以跟sprintf相互使用。
C語言實現:
char* itoa(int num,char* str,int radix) {/*索引表*/ char index[]="0123456789ABCDEF"; unsigned unum;/*中間變量*/ int i=0,j,k; /*確定unum的值*/ if(radix==10&&num<0)/*十進制負數*/ { unum=(unsigned)-num; str[i++]='-'; } else unum=(unsigned)num;/*其他情況*/ /*轉換*/ do{ str[i++]=index[unum%(unsigned)radix]; unum/=radix; }while(unum); str[i]='\0'; /*逆序*/ if(str[0]=='-') k=1;/*十進制負數*/ else k=0; for(j=k;j<=(i-1)/2;j++) { char temp; temp=str[j]; str[j]=str[i-1+k-j]; str[i-1+k-j]=temp; } return str; }
atoi():
把字符串轉換成整型
C語言實現:
int my_atoi(const char *src) { int s = 0; bool isMinus = false; while(*src == ' ') //跳過空白符 { src++; } if(*src == '+' || *src == '-') { if(*src == '-') { isMinus = true; } src++; } else if(*src < '0' || *src > '9') //如果第一位既不是符號也不是數字,直接返回異常值 { s = 2147483647; return s; } while(*src != '\0' && *src >= '0' && *src <= '9') { s = s * 10 + *src - '0'; src++; } return s * (isMinus ? -1 : 1); }