C++ Compare Const Char* To String

4 min read Jul 01, 2024
C++ Compare Const Char* To String

Membandingkan const char* dengan std::string di C++

Dalam pemrograman C++, seringkali kita perlu membandingkan string yang disimpan dalam bentuk const char* dengan objek std::string. Berikut adalah beberapa metode umum untuk melakukan perbandingan tersebut:

1. Menggunakan std::string::compare()

Metode ini mungkin yang paling sederhana dan efisien. Anda dapat menggunakan std::string::compare() untuk membandingkan string const char* dengan objek std::string. Fungsi ini mengembalikan nilai negatif jika std::string lebih kecil dari const char*, nilai positif jika std::string lebih besar, dan 0 jika keduanya sama.

#include 
#include 

int main() {
  const char* cstr = "Hello";
  std::string str = "World";

  int result = str.compare(cstr);

  if (result < 0) {
    std::cout << "str < cstr" << std::endl;
  } else if (result > 0) {
    std::cout << "str > cstr" << std::endl;
  } else {
    std::cout << "str == cstr" << std::endl;
  }

  return 0;
}

2. Menggunakan std::string Konstruktor

Anda dapat membuat objek std::string baru menggunakan const char* dan kemudian membandingkannya dengan objek std::string yang ada.

#include 
#include 

int main() {
  const char* cstr = "Hello";
  std::string str = "World";

  std::string cstr_string(cstr);

  if (str < cstr_string) {
    std::cout << "str < cstr" << std::endl;
  } else if (str > cstr_string) {
    std::cout << "str > cstr" << std::endl;
  } else {
    std::cout << "str == cstr" << std::endl;
  }

  return 0;
}

3. Menggunakan strcmp()

Fungsi strcmp() dari cstring library juga dapat digunakan untuk membandingkan const char* dengan objek std::string. Namun, Anda harus terlebih dahulu mengubah objek std::string menjadi const char* menggunakan .c_str().

#include 
#include 
#include 

int main() {
  const char* cstr = "Hello";
  std::string str = "World";

  int result = strcmp(str.c_str(), cstr);

  if (result < 0) {
    std::cout << "str < cstr" << std::endl;
  } else if (result > 0) {
    std::cout << "str > cstr" << std::endl;
  } else {
    std::cout << "str == cstr" << std::endl;
  }

  return 0;
}

4. Menggunakan Operator Perbandingan

Anda dapat menggunakan operator perbandingan seperti <, >, ==, !=, <=, dan >= untuk membandingkan objek std::string dengan const char*. Namun, perhatikan bahwa operator-operator ini hanya berlaku jika const char* telah diubah menjadi objek std::string terlebih dahulu.

#include 
#include 

int main() {
  const char* cstr = "Hello";
  std::string str = "World";

  std::string cstr_string(cstr);

  if (str < cstr_string) {
    std::cout << "str < cstr" << std::endl;
  } else if (str > cstr_string) {
    std::cout << "str > cstr" << std::endl;
  } else {
    std::cout << "str == cstr" << std::endl;
  }

  return 0;
}

Kesimpulan

Terdapat beberapa cara untuk membandingkan const char* dengan objek std::string di C++. Pilih metode yang paling sesuai dengan kebutuhan dan preferensi Anda. Ingat bahwa efisiensi dan kejelasan kode sangat penting dalam pemrograman.

Latest Posts