習題7 8 字串轉換成十進位制整數 15分

2021-10-05 02:23:17 字數 987 閱讀 5206

輸入乙個以#結束的字串,本題要求濾去所有的非十六進製制字元(不分大小寫),組成乙個新的表示十六進製制數字的字串,然後將其轉換為十進位制數後輸出。如果在第乙個十六進製制字元之前存在字元「-」,則代表該數是負數。

輸入在一行中給出乙個以#結束的非空字串。

在一行中輸出轉換後的十進位制數。題目保證輸出在長整型範圍內。

+-p-xf4+-1!#
-3905
#include #include #include int main()

; int leap = 1 ; //確定第乙個16進製出現之前是負數還是整數

//用於儲存哪些已經過濾掉的16進製制數,第乙個數設定乙個任意數用於確定在16進之前出現的符號是否為負

// 如果第乙個字元仍然沒有改變,則說明還沒遇到16進製制數,若改變,則已經遇到16進製制數

char arr[50]=;

int i = 0 ; //統計當前統計到那個字元,用於arr字元陣列

int j; //後面用於遍歷

char c ;

int sum = 0 ; //統計轉化為十進位制的和

while((c=getchar())!='#')

}for(j = 0 ; j < 22;j++) //遍歷對應的list陣列,如果在陣列裡面就說明是16進製制數

}}/*

到此為止*arr裡面存的是我們挑選出來的十六進製制數

接下來是將十六進製制變成十進位制 */

int k = 0; //用於統計當前位於第幾位,與16位的乘積有關

for(j = i-1;j>=0;j--)

else if (arr[j]>='a'&&arr[j]<='f')

else

k++;

} if(leap) //剛剛確定的是否為正負數

else

return 0;

}

習題7 8 字串轉換成十進位制整數

輸入乙個以 結束的字串,本題要求濾去所有的非十六進製制字元 不分大小寫 組成乙個新的表示十六進製制數字的字串,然後將其轉換為十進位制數後輸出。如果在第乙個十六進製制字元之前存在字元 則代表該數是負數。輸入在一行中給出乙個以 結束的非空字串。在一行中輸出轉換後的十進位制數。題目保證輸出在長整型範圍內。...

習題7 8 字串轉換成十進位制整數

判斷是否是十六進製制字元,是返回1 4int hex to dec char ch 十六進製制字元轉換位十進位制數 5int main void 6 1415 int j 0 16 int count 0 十六進製制字元的個數 17int first hex 1 第乙個十六進製制字元的下標 18fo...

PTA習題7 8 字串轉換成十進位制整數

輸入乙個以 結束的字串,本題要求濾去所有的非十六進製制字元 不分大小寫 組成乙個新的表示十六進製制數字的字串,然後將其轉換為十進位制數後輸出。如果在第乙個十六進製制字元之前存在字元 則代表該數是負數。輸入格式 輸入在一行中給出乙個以 結束的非空字串。輸出格式 在一行中輸出轉換後的十進位制數。題目保證...