PTA字串轉換成十進位制整數

2021-09-29 05:55:29 字數 1248 閱讀 9513

初聞不知曲中意,再聞已是曲中人

去年此時正被這套pta題目折磨,一年之後再寫這些題目,記憶尤新,經歷的酸楚自然是值得的。

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

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

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

±p-xf4±1!#

-3905

重點在字串的清洗上,只保留第乙個負號,保留數字和十六進製制字元,其餘洗掉。

然後進行進製轉換

#include

#include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

#define for1(i,m,n) for(int i=m;i#define for2(i,m,n) for(int i=m;i>=n;i--)

// 清洗輸入的字串

vector<

char

>

convert

(string s)

else

if(s[i]

=='-'

&&first==

true)}

return v;

}// 進製轉換

ll convertres

(vector<

char

> v)

else

if(v[i]

>=

'a'&&v[i]

<=

'f')

else

if(v[i]

>=

'a'&&v[i]

<=

'f')

else;}

return res;

}int

main()

// cout << endl;

ll res =

convertres

(v);if(

!postive) res *=-

1;cout << res << endl;

return0;

}

字串轉換成十進位制整數

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

字串轉換成十進位制整數

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

c字串轉換成十進位制整數

題目 輸入乙個以 結束的字串,本題要求濾去所有的非十六進製制字元 不分大小寫 組成乙個新的表示十六進製制數字的字串,然後將其轉換為十進位制數後輸出。如果在第乙個十六進製制字元之前存在字元 則代表該數是負數。include include intmain if a o 0 p i 0 long lon...