首頁 > 後端開發 > C++ > 檢查一個字串是否表示一個十六進制數

檢查一個字串是否表示一個十六進制數

PHPz
發布: 2023-09-25 11:45:04
轉載
1244 人瀏覽過

檢查一個字串是否表示一個十六進制數

在電腦科學中,十六進位是一種基於16的數字系統。它使用16個不同的符號,包括十個十進制數字0到9和六個字母A、B、C、D、E和F來表示從0到15的數字。在本文中,我們將討論如何檢查一個字串是否表示一個十六進制數。

問題陳述

給定一個字串,任務是檢查它是否表示一個有效的十六進制數。

方法

我們可以透過迭代字串中的字元並檢查它們是否屬於有效的十六進位字元集來解決這個問題。有效的十六進位字元是從0到9的數字和從A到F的字母(大小寫不限)。如果字串中的所有字元都屬於這個字元集,那麼字串表示一個有效的十六進位數。

Example

這是上述方法的C 程式碼實作:

#include <iostream>
#include <string>

using namespace std;

bool isHexadecimal(string s) {
   int n = s.length();
   
   for (int i = 0; i < n; i++) {
      if (!isxdigit(s[i])) {
         return false;
      }
   }
   
   return true;
}

int main() {
   string s1 = "ABCD1234";
   string s2 = "12G4F5";
   
   if (isHexadecimal(s1)) {
      cout << s1 << " represents a valid hexadecimal number." << endl;
   } else {
      cout << s1 << " does not represent a valid hexadecimal number." << endl;
   }
   
   if (isHexadecimal(s2)) {
      cout << s2 << " represents a valid hexadecimal number." << endl;
   } else {
      cout << s2 << " does not represent a valid hexadecimal number." << endl;
   }
   
   return 0;
}
登入後複製

輸出

執行上述程式碼將輸出

ABCD1234 represents a valid hexadecimal number.
12G4F5 does not represent a valid hexadecimal number.
登入後複製

時間複雜度

解的時間複雜度為O(N),其中N是字串的長度。

空間複雜度

解的空間複雜度為O(1)。

在上面的程式碼中,我們定義了一個函數isHexadecimal,它接受一個字串作為輸入,並在字串表示一個有效的十六進位數時傳回true,否則傳回false。我們使用isxdigit函數來檢查字串中的每個字元是否屬於有效的十六進位字元集。

測試用例

讓我們取兩個字串s1 = "ABCD1234"和s2 = "12G4F5"。字串s1表示一個有效的十六進位數,因為字串中的所有字元都屬於有效的十六進位字元集。另一方面,字串s2不表示一個有效的十六進制數,因為它包含了一個不是有效十六進位字元的字元'G'。

結論

總之,我們可以透過迭代字串的字元並檢查它們是否屬於有效的十六進位字元集來輕鬆地檢查一個字串是否表示一個有效的十六進制數。

以上是檢查一個字串是否表示一個十六進制數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板