Rangkuman: Penggabungan string Dinamis
Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 61 dari 63.
Tantangan
MudahBuat program C yang mengimplementasikan fungsi penggabungan string dinamis untuk membuat utilitas pemrosesan teks. Programmu harus:
- Menulis fungsi bernama
concatenateStringsyang:- Menerima dua parameter
char*bernamastr1danstr2 - Mengembalikan
char*yang menunjuk ke string yang dialokasikan secara dinamis - Menghitung total memori yang dibutuhkan untuk kedua string beserta terminator null
- Menggunakan
malloc()untuk mengalokasikan jumlah memori yang tepat sesuai kebutuhan - Memeriksa apakah alokasi memori berhasil, mengembalikan NULL jika alokasi gagal
- Menggunakan
strcpy()untuk menyalin string pertama ke memori yang dialokasikan - Menggunakan
strcat()untuk menambahkan string kedua ke hasil - Mengembalikan pointer ke string hasil penggabungan yang baru dibuat
- Menerima dua parameter
- Menulis fungsi bernama
processTextyang:- Menerima tiga parameter
char*:word1,word2, danseparator - Mengembalikan
char*yang menunjuk ke string yang dialokasikan secara dinamis - Membuat string gabungan dengan format: word1 + separator + word2
- Memanggil
concatenateStringsterlebih dahulu untuk menggabungkanword1danseparator - Kemudian memanggil
concatenateStringslagi untuk menambahkanword2ke hasil - Membebaskan alokasi memori perantara dengan benar
- Mengembalikan hasil akhir penggabungan
- Menerima tiga parameter
- Di fungsi main:
- Mendeklarasikan tiga array karakter yang masing-masing berukuran 50:
firstWord,secondWord, danconnector - Membaca tiga string dari input yang mewakili kata pertama, kata kedua, dan penghubung
- Memanggil fungsi
processTextdengan ketiga string ini - Memeriksa apakah pointer yang dikembalikan bukan NULL
- Jika berhasil, mencetak hasil dengan format persis seperti ini:
Result: [concatenated_string] - Jika alokasi memori gagal, mencetak:
Memory allocation failed - Menghitung dan mencetak panjang string hasil dengan format persis seperti ini:
Length: [length] - Membebaskan memori yang dialokasikan secara dinamis
- Mendeklarasikan tiga array karakter yang masing-masing berukuran 50:
Tantangan ini menguji penguasaanmu atas alokasi memori dinamis, fungsi manipulasi string, nilai pengembalian pointer, dan pengelolaan memori yang benar. Kamu akan berlatih menghitung kebutuhan memori, menggunakan malloc() dan free(), menggunakan beberapa fungsi string, serta menangani kegagalan alokasi memori. Tantangan ini menunjukkan cara alokasi dinamis memungkinkan fungsi membuat dan mengembalikan data yang tetap tersedia setelah fungsi tersebut selesai dijalankan.
Coba sendiri
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// TODO: Tulis fungsi concatenateStrings-mu di sini
// TODO: Tulis fungsi processText-mu di sini
int main() {
// Baca input
char firstWord[50];
char secondWord[50];
char connector[50];
scanf("%s", firstWord);
scanf("%s", secondWord);
scanf("%s", connector);
// TODO: Tulis kodemu di bawah ini
// Panggil fungsi processText dan tangani hasilnya
return 0;
}Semua pelajaran di Logika dan Alur
1Dasar-Dasar Pointer
Apa Itu Pointer?Mendeklarasikan PointerOperator Address-Of (&)Operator Dereference (*)Pointer NULLRekap: Dasar-Dasar Pointer4Proyek: Utilitas Teks Sederhana
Gambaran Umum ProyekMenghitung Karakter2Pointer dan array
Nama array sebagai pointerElemen array dan pointerAritmetika pointerMembandingkan pointerRangkuman: Menelusuri array dengan pointer5Pointer dan Fungsi
Penerusan dengan NilaiMeneruskan Pointer ke FungsiMengubah Variabel melalui PointerContoh Klasik: SwapMeneruskan Array ke FungsiRingkasan: Argumen Pointer Fungsi8Struct dan Pointer
Pointer ke StructOperator Panah (->)Mengirim Struct berdasarkan NilaiMengirim Pointer StructAlokasi Dinamis StructUlasan: Memodifikasi Struct dengan Pointer11Tantangan Rangkuman Akhir
Rangkuman: Penggabungan string DinamisRangkuman: array berisi structRangkuman: Penghitung Frekuensi Kata3Array char dan String
String sebagai array charPenanda akhir nullInput String dengan scanfMenggunakan strlen()Menggunakan strcpy()Menggunakan strcat()Menggunakan strcmp()Ulasan: Fungsi String DasarLatihan sendiri: Compiler C online