Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ตรวจสอบว่า Number อยู่ใน Base ที่กำหนดหรือไม่ใน C++

สมมติมี Number String ต้องการตรวจสอบว่าเป็น Base B หรือไม่ ถ้า String "101110", b = 2 คืนค่า true ถ้า "A8F", base 16 ก็ true

วิธีง่าย: ถ้า Character ทุกตัวอยู่ในช่วง Symbol ของ Base นั้น คืนค่า true มิฉะนั้น false

ตัวอย่างโค้ด C++

#include <iostream>
using namespace std;

bool inGivenBase(string s, int base) {
    if (base > 16) // handle up to base 16
        return false;
    else if (base <= 10) { // for 0 to 9
        for (int i = 0; i < s.length(); i++)
            if (!(s[i] >= '0' && s[i] < ('0' + base)))
                return false;
    } else {
        for (int i = 0; i < s.length(); i++)
            if (!((s[i] >= '0' && s[i] < ('0' + base)) || (s[i] >= 'A' && s[i] < ('A' + base - 10))))
                return false;
    }
    return true;
}

int main() {
    string str = "A87F";
    int base = 16;
    if(inGivenBase(str, base)) {
        cout << str << " is in base " << base;
    } else {
        cout << str << " is not in base " << base;
    }
}

ผลลัพธ์

A87F is in base 16