- 參數:數 - 數要轉換爲字符串
- 基地 - 你的numebr轉換爲
-
- 返回基地:數在基地的 「基地」 字符串
-
- 返回類型:字符*
這是我的代碼,但它無法正常工作;將數字轉換從給定的基本爲十進制
char *toBase(int number, int base) {
char *result=malloc(80);
char *ans=malloc(80);
int i=0,j,c;
while(number != 0) {
result[i] = number % base;
number = number/base; ++i;
}
for(j=i-1;j>=0;j--) {
if(result[j]>=10 && result[j]<=24) {
printf("%c",(result[j]+55));
*ans++=(result[j]+55);
} else {
printf("%d",(result[j]));
*ans++=(result[j]);
}
}
return ans;
}
我加的printf語句來檢查它是否是工作或不。 printf語句給了我正確的答案,但是當函數被調用時我什麼也沒有得到。 – max
當添加一個數字,你應該說'* ANS ++ =結果[J] +「0」;'來得到一個數字的字符表示。因爲您正在添加代碼爲0到9的字符,這些字符通常是不可打印的控制字符。 (這可能是將尋找合適的數字表示到一個單獨的函數是個好主意。) –
你也應該在最後一個循環後,空終止'ans'。 –