先上代碼
#include <stdio.h>
void itoa (int n,char s[]);
//atoi 函式:將s轉換為整形數
int main()
{
int n;
char s[100];
printf("Input n:\n");
scanf("%d",&n);
printf("the string : \n");
itoa (n,s);
return 0;
}
void itoa (int n,char s[])
{
int i,j,sign;
if((sign=n)<0)//記錄符號
n=-n;//使n成為正數
i=0;
do{
s[i++]=n%10+'0';//取下一個數字
}
while ((n/=10)>0);//洗掉該數字
if(sign<0)
s[i++]='-';
s[i]='\0';
for(j=i;j>=0;j--)//生成的數字是逆序的,所以要逆序輸出
printf("%c",s[j]);
}
就是s[i]='\0',假設我輸入的整數為-12,那么s[0]是'2',s[1]是'1',s[2]就是'-',那么問題來了s[i]為s[3]也就是'\0',我覺得printf輸出的成了'\0' - 1 2而不是-12'\0',可是為啥教程這么寫呢?實在想不通,兩天了,真是懊惱
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/270229.html
標籤:疑難問題
上一篇:求教個資料庫查詢問題
下一篇:sql2012
