我寫了這段代碼來獲得一個反向形式的數字。但是,如果我使用任何負面的輸入,它顯示正反向數字。 C中的atoi函數可以處理否定嗎?如何通過使用atoi()獲得負值?
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(void){
char ar[40];
char ar2[40];
int fnum;
scanf("%s",ar);
for(int i=strlen(ar)-1,j=0;i>=0;i--){
ar2[j]=ar[i];
j++;
}
fnum=atoi(ar2);
printf("%d",fnum);
return 0;
}
與你的問題無關,但你在哪裏終止'ar2'?請記住,'char'字符串實際上被稱爲***空終止的**字節字符串*。 –
至於你的問題,在一個包含負數的字符串中,哪裏是負號?倒轉後,負號字符在哪裏? –
你的循環是倒退的。如果輸入的是正數,它也會反向打印。這是故意的嗎?負數將顯示爲正數,因爲'-'發生在字符串的末尾,不被視爲數字的一部分。 –