C++ Check If String Contains Only Digits

4 min read Jul 01, 2024
C++ Check If String Contains Only Digits

C++: Cara Mengecek Apakah String Hanya Mengandung Angka

Dalam pemrograman C++, seringkali kita perlu memvalidasi input pengguna atau data yang diproses. Salah satu validasi yang umum adalah memeriksa apakah sebuah string hanya mengandung angka. Artikel ini akan membahas cara melakukan pengecekan tersebut.

Metode 1: Menggunakan Loop dan isdigit()

Metode ini mengulang setiap karakter dalam string dan memeriksa apakah karakter tersebut adalah angka menggunakan fungsi isdigit() dari library <cctype>.

#include 
#include 
#include 

using namespace std;

bool isDigitString(const string& str) {
  for (char c : str) {
    if (!isdigit(c)) {
      return false; // Jika ada karakter non-angka, return false
    }
  }
  return true; // Jika semua karakter adalah angka, return true
}

int main() {
  string str1 = "12345";
  string str2 = "abc123";

  if (isDigitString(str1)) {
    cout << str1 << " hanya mengandung angka." << endl;
  } else {
    cout << str1 << " tidak hanya mengandung angka." << endl;
  }

  if (isDigitString(str2)) {
    cout << str2 << " hanya mengandung angka." << endl;
  } else {
    cout << str2 << " tidak hanya mengandung angka." << endl;
  }

  return 0;
}

Kode di atas mendefinisikan fungsi isDigitString(). Fungsi ini menerima string sebagai input dan mengembalikan true jika string tersebut hanya mengandung angka, dan false jika tidak.

Penjelasan:

  1. #include <iostream>: Menyertakan library untuk input dan output.
  2. #include <string>: Menyertakan library untuk manipulasi string.
  3. #include <cctype>: Menyertakan library untuk fungsi isdigit().
  4. isDigitString(const string& str): Fungsi yang mengembalikan true jika string hanya mengandung angka.
    • for (char c : str): Loop melalui setiap karakter dalam string str.
    • if (!isdigit(c)): Memeriksa apakah karakter c bukan angka. Jika ya, fungsi mengembalikan false.
    • return true;: Jika semua karakter adalah angka, fungsi mengembalikan true.

Metode 2: Menggunakan Regular Expression

Metode ini menggunakan library regular expression (<regex>) untuk memeriksa apakah string cocok dengan pola yang hanya mengandung angka.

#include 
#include 
#include 

using namespace std;

bool isDigitString(const string& str) {
  regex pattern("[0-9]+");
  return regex_match(str, pattern);
}

int main() {
  string str1 = "12345";
  string str2 = "abc123";

  if (isDigitString(str1)) {
    cout << str1 << " hanya mengandung angka." << endl;
  } else {
    cout << str1 << " tidak hanya mengandung angka." << endl;
  }

  if (isDigitString(str2)) {
    cout << str2 << " hanya mengandung angka." << endl;
  } else {
    cout << str2 << " tidak hanya mengandung angka." << endl;
  }

  return 0;
}

Penjelasan:

  1. #include <regex>: Menyertakan library untuk regular expression.
  2. isDigitString(const string& str): Fungsi yang mengembalikan true jika string hanya mengandung angka.
    • regex pattern("[0-9]+"): Membuat objek regular expression pattern dengan pola "[0-9]+", yang berarti satu atau lebih angka.
    • return regex_match(str, pattern): Memeriksa apakah string str cocok dengan pola pattern. Jika cocok, fungsi mengembalikan true.

Kedua metode di atas dapat digunakan untuk memeriksa apakah sebuah string hanya mengandung angka dalam C++. Pilih metode yang paling sesuai dengan kebutuhan Anda.

Latest Posts


Featured Posts