Menu
CoddyTech

Rangkuman: Penggabungan string Dinamis

Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 61 dari 63.

challenge icon

Tantangan

Mudah

Buat program C yang mengimplementasikan fungsi penggabungan string dinamis untuk membuat utilitas pemrosesan teks. Programmu harus:

  1. Menulis fungsi bernama concatenateStrings yang:
    • Menerima dua parameter char* bernama str1 dan str2
    • 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
  2. Menulis fungsi bernama processText yang:
    • Menerima tiga parameter char*: word1, word2, dan separator
    • Mengembalikan char* yang menunjuk ke string yang dialokasikan secara dinamis
    • Membuat string gabungan dengan format: word1 + separator + word2
    • Memanggil concatenateStrings terlebih dahulu untuk menggabungkan word1 dan separator
    • Kemudian memanggil concatenateStrings lagi untuk menambahkan word2 ke hasil
    • Membebaskan alokasi memori perantara dengan benar
    • Mengembalikan hasil akhir penggabungan
  3. Di fungsi main:
    • Mendeklarasikan tiga array karakter yang masing-masing berukuran 50: firstWord, secondWord, dan connector
    • Membaca tiga string dari input yang mewakili kata pertama, kata kedua, dan penghubung
    • Memanggil fungsi processText dengan 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

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

Latihan sendiri: Compiler C online