C++ Compare Char Array Case Insensitive

4 min read Jul 01, 2024
C++ Compare Char Array Case Insensitive

Membandingkan Array Karakter Tanpa Sensitif Kasus (Case-Insensitive) di C++

Membandingkan array karakter (string) tanpa sensitif kasus di C++ dapat dilakukan dengan beberapa metode. Berikut adalah beberapa contoh:

1. Menggunakan Fungsi tolower() atau toupper()

Metode ini mengubah semua karakter dalam kedua array menjadi huruf kecil atau besar, lalu membandingkannya.

#include 
#include 
#include 

int main() {
  char str1[] = "Hello";
  char str2[] = "hello";

  // Mengubah semua karakter menjadi huruf kecil
  for (int i = 0; str1[i] != '\0'; i++) {
    str1[i] = tolower(str1[i]);
  }
  for (int i = 0; str2[i] != '\0'; i++) {
    str2[i] = tolower(str2[i]);
  }

  // Membandingkan kedua array
  if (strcmp(str1, str2) == 0) {
    std::cout << "Kedua string sama." << std::endl;
  } else {
    std::cout << "Kedua string tidak sama." << std::endl;
  }

  return 0;
}

2. Menggunakan std::transform()

Metode ini menggunakan fungsi std::transform() untuk mengubah semua karakter menjadi huruf kecil atau besar sebelum membandingkannya.

#include 
#include 
#include 
#include 

int main() {
  char str1[] = "Hello";
  char str2[] = "hello";

  // Mengubah semua karakter menjadi huruf kecil
  std::transform(str1, str1 + strlen(str1), str1, ::tolower);
  std::transform(str2, str2 + strlen(str2), str2, ::tolower);

  // Membandingkan kedua array
  if (strcmp(str1, str2) == 0) {
    std::cout << "Kedua string sama." << std::endl;
  } else {
    std::cout << "Kedua string tidak sama." << std::endl;
  }

  return 0;
}

3. Menggunakan Perulangan dan tolower() atau toupper()

Metode ini membandingkan setiap karakter dalam kedua array secara individual dengan mengubahnya menjadi huruf kecil atau besar.

#include 
#include 
#include 

int main() {
  char str1[] = "Hello";
  char str2[] = "hello";

  // Membandingkan setiap karakter
  bool sama = true;
  for (int i = 0; str1[i] != '\0' || str2[i] != '\0'; i++) {
    if (tolower(str1[i]) != tolower(str2[i])) {
      sama = false;
      break;
    }
  }

  // Menampilkan hasil
  if (sama) {
    std::cout << "Kedua string sama." << std::endl;
  } else {
    std::cout << "Kedua string tidak sama." << std::endl;
  }

  return 0;
}

4. Menggunakan std::string dan std::tolower()

Metode ini mengubah kedua array menjadi objek std::string dan menggunakan std::tolower() untuk membandingkan kedua string tanpa sensitif kasus.

#include 
#include 
#include 

int main() {
  char str1[] = "Hello";
  char str2[] = "hello";

  std::string s1(str1);
  std::string s2(str2);

  // Mengubah semua karakter menjadi huruf kecil
  std::transform(s1.begin(), s1.end(), s1.begin(), ::tolower);
  std::transform(s2.begin(), s2.end(), s2.begin(), ::tolower);

  // Membandingkan kedua string
  if (s1 == s2) {
    std::cout << "Kedua string sama." << std::endl;
  } else {
    std::cout << "Kedua string tidak sama." << std::endl;
  }

  return 0;
}

Metode yang Anda pilih tergantung pada preferensi Anda dan kebutuhan khusus dalam program Anda.

Latest Posts


Featured Posts