Panduan Pemula untuk String C++

Hai sana, bakal bintang coding! Sebagai guru ilmu komputer dengan pengalaman bertahun-tahun, saya sangat gembira untuk membawa Anda ke dalam dunia yang menakjubkan string C++. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya - kita akan mulai dari awal dan maju bersama. Pada akhir panduan ini, Anda akan bisa mengelola string seperti yang terbaik! (Maaf, saya tidak bisa menahan untuk memberikan一个小小的 string permainan kata untuk memulai!)

C++ Strings

String gaya C

Ayo mulai dengan nenek moyang semua string di C++: string gaya C. String ini adalah warisan dari bahasa pemrograman C, tetapi tetap penting untuk dipahami di C++.

Apa itu string gaya C?

String gaya C adalah sebenarnya array karakter yang diakhiri dengan karakter khusus yang disebut penutup nol (\0). Penutup nol ini memberitahu komputer dimana string berakhir.

Ini adalah contoh sederhana:

char greeting[] = "Hello";

Dalam kasus ini, greeting sebenarnya adalah array 6 karakter: {'H', 'e', 'l', 'l', 'o', '\0'}.

Mengelola string gaya C

Ayo lihat beberapa operasi umum dengan string gaya C:

  1. Mendeklarasikan dan menginisialisasi:
char name[20] = "Alice";  // Mendeklarasikan string dengan maksimum 19 karakter (termasuk penutup nol)
char city[] = "New York"; // Ukuran secara otomatis ditentukan
  1. Masukan dan keluaran:
#include <iostream>
#include <cstring>

int main() {
char food[50];
std::cout << "Makanan favorit Anda apa? ";
std::cin.getline(food, 50);
std::cout << "Ah, " << food << " rasanya enak!" << std::endl;
return 0;
}

Dalam contoh ini, kita menggunakan cin.getline() untuk membaca keseluruhan baris masukan, termasuk spasi.

  1. Manipulasi string:

String gaya C dapat dimanipulasi menggunakan fungsi dari pustaka <cstring>. Berikut adalah beberapa yang umum:

Fungsi Deskripsi Contoh
strlen() Dapatkan panjang string int len = strlen(name);
strcpy() Salin satu string ke yang lain strcpy(dest, src);
strcat() Gabungkan string strcat(str1, str2);
strcmp() Bandingkan string int result = strcmp(str1, str2);

Ini adalah program kecil yang menggunaan fungsi ini:

#include <iostream>
#include <cstring>

int main() {
char first_name[20] = "John";
char last_name[20] = "Doe";
char full_name[40];

std::cout << "Panjang nama depan: " << strlen(first_name) << std::endl;

strcpy(full_name, first_name);
strcat(full_name, " ");
strcat(full_name, last_name);

std::cout << "Nama lengkap: " << full_name << std::endl;

if (strcmp(first_name, last_name) == 0) {
std::cout << "Nama depan dan nama belakang sama!" << std::endl;
} else {
std::cout << "Nama depan dan nama belakang berbeda." << std::endl;
}

return 0;
}

Program ini menunjukkan perhitungan panjang string, penyalinan, penggabungan, dan perbandingan. Sangat menarik, kan?

Kelas String di C++

Sekarang, ayo pindah ke cara yang lebih modern dan mudah untuk mengelola string di C++: kelas std::string.

Pengenalan ke std::string

Kelas std::string adalah bagian dari Pustaka Standar C++ dan menyediakan cara yang lebih ramah pengguna untuk bekerja dengan string. Itu mengelola manajemen memori secara otomatis dan datang dengan sejumlah besar fungsi anggota yang berguna.

Untuk menggunakan std::string, Anda perlu menyertakan header <string>:

#include <string>

Membuat dan menggunakan objek std::string

Ayo lihat beberapa contoh:

  1. Mendeklarasikan dan menginisialisasi:
std::string greeting = "Hello, world!";
std::string name("Alice");
std::string empty_string;  // Membuat string kosong
  1. Masukan dan keluaran:
#include <iostream>
#include <string>

int main() {
std::string favorite_color;
std::cout << "Warna favorit Anda apa? ";
std::getline(std::cin, favorite_color);
std::cout << "Ah, " << favorite_color << " adalah warna yang indah!" << std::endl;
return 0;
}

Perhatikan bagaimana kita menggunakan std::getline() untuk membaca keseluruhan baris masukan, termasuk spasi.

  1. Operasi string:

Kelas std::string menyediakan banyak fungsi anggota yang berguna. Berikut adalah beberapa yang umum:

Fungsi Deskripsi Contoh
length() atau size() Dapatkan panjang string int len = str.length();
empty() Periksa jika string kosong if (str.empty()) { ... }
append() atau += Tambahkan ke string str.append(" World"); atau str += " World";
substr() Dapatkan substring std::string sub = str.substr(0, 5);
find() Temukan substring size_t pos = str.find("hello");
replace() Ganti bagian string str.replace(0, 5, "Hi");

Ayo gunakan ini dalam program:

#include <iostream>
#include <string>

int main() {
std::string sentence = "The quick brown fox jumps over the lazy dog";

std::cout << "Panjang kalimat: " << sentence.length() << std::endl;

if (!sentence.empty()) {
std::cout << "Kalimat ini tidak kosong." << std::endl;
}

sentence += "!";  // Tambahkan tanda seru
std::cout << "Kalimat yang diperbarui: " << sentence << std::endl;

std::string sub = sentence.substr(4, 5);  // Dapatkan "quick"
std::cout << "Substring: " << sub << std::endl;

size_t fox_pos = sentence.find("fox");
if (fox_pos != std::string::npos) {
std::cout << "Menemukan 'fox' di posisi: " << fox_pos << std::endl;
}

sentence.replace(fox_pos, 3, "cat");
std::cout << "Setelah penggantian: " << sentence << std::endl;

return 0;
}

Program ini menunjukkan berbagai operasi string seperti mendapatkan panjang, memeriksa kosong, menambahkan, mendapatkan substring, menemukan, dan mengganti.

Mengkomparasi string gaya C dan std::string

Meskipun string gaya C masih digunakan dalam beberapa konteks (terutama saat berinteraksi dengan kode C), std::string biasanya lebih disukai dalam C++ modern karena beberapa alasan:

  1. Manajemen memori otomatis
  2. Lebih aman dan mudah digunakan
  3. Operasi yang lebih mudah (seperti penggabungan dengan operator +)
  4. Kumpulan fungsi anggota yang kaya

Ini adalah perbandingan cepat:

// String gaya C
char cstr1[20] = "Hello";
char cstr2[20];
strcpy(cstr2, cstr1);  // Salin
strcat(cstr1, " World");  // Gabungkan

// std::string
std::string str1 = "Hello";
std::string str2 = str1;  // Salin
str1 += " World";  // Gabungkan

Seperti yang Anda lihat, operasi std::string lebih intuitif dan kurang berisiko kesalahan.

Kesimpulan

Selamat! Anda telah mengambil langkah pertama ke dunia string C++. Kita telah menelusuri string gaya C, yang agak kuno tetapi penting untuk diketahui, dan kelas std::string yang lebih modern dan mudah digunakan.

Ingat, latihan membuat sempurna. Cobalah menulis beberapa program menggunakan kedua jenis string untuk menguatkan apa yang Anda pelajari. Sebelum Anda tahu, Anda akan bisa mengelola string seperti seorang pro!

Terus coding, terus belajar, dan terutama, bersenang-senang! Siapa tahu, mungkin suatu hari Anda akan menulis pustaka string sendiri. Sampai itu, selamat coding!

Credits: Image by storyset