自己看代碼
#include <stdio.h> void toString(int number, char *str); void toInt(char *str, int *number); void main() { char str1[20],str2[20]; int number; toString(123,str1); toString(-123,str2); toInt("500",&number); printf("%s\n",str1); printf("%s\n",str2); printf("%d\n",number); getchar(); } void toString(int number,char *str)//數字轉字符串算法實現 { int isNegative = 0;//默認為非負數 int i,j; char temp; isNegative = number < 0 ? (number*=-1,1) :0;//判斷是否為負數,巧用逗號表達式,可以省一行(哈哈) for (i = 0; number != 0; i++)//反向逐一取得字符,最后反轉 { str[i] = (char)(number % 10+48); number /= 10; } if (isNegative)//負數處理 { str[i++] = '-'; str[i--] = 0; } else//正數處理 str[i--] = 0;//i++,可以使得i正好等於字符個數,又省了三行(低調) for (j = 0; j <= i / 2; j++)//字符數組反轉,3個字符換兩次,4個換兩次,奇偶通用(數組反轉算法) { temp = str[j]; str[j] = str[i - j]; str[i - j] = temp; } } void toInt(char *str,int *number)//字符串轉數字算法實現 { int i; *number = 0;//強制初始化 for (i = 0; str[i] != 0; i++) *number = (int)(str[i] - 48) + *number * 10;//逐一取字符轉換為數字,並升權放入number }