Panduan Ramah untuk Pemula: String dalam C++
Halo sana, bintang coding masa depan! Sebagai guru ilmu komputer dengan pengalaman tahunan, saya sangat antusias untuk membawa Anda dalam perjalanan melalui dunia menakjubkan string dalam C++. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya - kita akan mulai dari awal dan bekerja bersama-sama menuju atas. Pada akhir panduan ini, Anda akan menjadi ahli memanipulasi string seperti yang terbaik! (Maaf, saya tidak bisa menahan diri untuk memberikan一个小小的 string pun untuk memulai!)
String gaya C
mari kita mulai dengan nenek moyang semua string dalam C++: string gaya C. String ini adalah warisan dari bahasa pemrograman C, tetapi tetap penting untuk dipahami dalam C++.
Apa itu string gaya C?
String gaya C adalah sebenarnya array karakter yang diakhiri oleh 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'}
.
Memanipulasi string gaya C
mari kita lihat beberapa operasi umum dengan string gaya C:
- Deklarasi dan inisialisasi:
char name[20] = "Alice"; // Mendeklarasikan string dengan maksimum 19 karakter (ditambah penutup nol)
char city[] = "New York"; // Ukuran ditentukan secara otomatis
- Masukan dan keluaran:
#include <iostream>
#include <cstring>
int main() {
char food[50];
std::cout << "Makanan kesukaan 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 seluruh baris masukan, termasuk spasi.
- Manipulasi string:
String gaya C dapat dimanipulasi menggunakan fungsi dari library <cstring>
. Berikut adalah beberapa yang umum:
Fungsi | Deskripsi | Contoh |
---|---|---|
strlen() |
Dapatkan panjang string | int len = strlen(name); |
strcpy() |
Salin satu string ke string lain | strcpy(dest, src); |
strcat() |
Gabungkan string | strcat(str1, str2); |
strcmp() |
Bandingkan string | int result = strcmp(str1, str2); |
Ini adalah program kecil yang memanfaatkan fungsi-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 keren, kan?
Kelas String dalam C++
Sekarang, mari kita pindah ke cara yang lebih modern dan mudah untuk memanipulasi string dalam C++: kelas std::string
.
Pengenalan ke std::string
Kelas std::string
adalah bagian dari Library 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
mari kita lihat beberapa contoh:
- Deklarasi dan inisialisasi:
std::string greeting = "Hello, world!";
std::string name("Alice");
std::string empty_string; // Membuat string kosong
- Masukan dan keluaran:
#include <iostream>
#include <string>
int main() {
std::string favorite_color;
std::cout << "Warna kesukaan 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 seluruh baris masukan, termasuk spasi.
- 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 +=
|
Menambahkan 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"); |
mari kita 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 += "!"; // Menambahkan 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, mengambil substring, menemukan, dan mengganti.
Membandingkan 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:
- Manajemen memori otomatis
- Lebih aman dan mudah digunakan
- Operasi yang lebih mudah (seperti penggabungan dengan operator
+
) - Set luas fungsi anggota
Ini adalah perbandingan cepat:
// String gaya C
char cstr1[20] = "Hello";
char cstr2[20];
strcpy(cstr2, cstr1); // Menyalin
strcat(cstr1, " World"); // Menggabungkan
// std::string
std::string str1 = "Hello";
std::string str2 = str1; // Menyalin
str1 += " World"; // Menggabungkan
Seperti yang Anda lihat, operasi std::string
lebih intuitif dan kurang berisiko kesalahan.
Kesimpulan
Selamat! Anda telah mengambil langkah pertama ke dunia string dalam C++. Kita telah melihat string gaya C, yang masih penting untuk diketahui, dan kelas std::string
yang lebih modern dan mudah.
Ingat, latihan membuat sempurna. Cobalah menulis beberapa program menggunakan kedua jenis string untuk menguatkan apa yang Anda pelajari. Sebelum Anda tahu, Anda akan menjadi ahli memanipulasi string seperti yang terbaik!
Terus coding, terus belajar, dan terutama, bersenang-senang! Siapa tahu, mungkin suatu hari Anda akan menulis library string sendiri. Sampai saat itu, selamat coding!
Credits: Image by storyset