Menu
CoddyTech

Menggunakan strcpy()

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

Kamu sudah belajar cara mencari panjang string dengan strlen(), tetapi bagaimana jika kamu perlu menyalin isi satu string ke string lain? Di C, kamu tidak bisa menggunakan operator penugasan (=) untuk menyalin string seperti yang kamu lakukan pada variabel biasa.

Alasannya adalah string merupakan array karakter, dan saat kamu menggunakan = dengan array, kamu hanya menyalin alamat memori, bukan konten sebenarnya. Di sinilah fungsi strcpy() dari library <string.h> menjadi penting.

#include <stdio.h>
#include <string.h>

char source[] = "Hello";
char destination[20];
strcpy(destination, source);  // Menyalin "Hello" ke destination

Fungsi strcpy() menerima dua argumen: array tujuan (tempat kamu ingin menyalin) dan string sumber (yang ingin kamu salin). Fungsi ini menyalin setiap karakter dari sumber ke tujuan, termasuk terminator null.

Penting untuk memastikan array tujuan cukup besar untuk menampung seluruh string sumber beserta terminator null. Jika array tujuan terlalu kecil, strcpy() akan menulis melewati batas array, sehingga menyebabkan perilaku yang tidak terdefinisi.

Fungsi ini sangat penting untuk manipulasi string di C, sehingga kamu dapat menggandakan string, menginisialisasi variabel string dengan konten yang sudah ada, dan menyiapkan string untuk pemrosesan lebih lanjut.

challenge icon

Tantangan

Mudah

Tulis program C yang menunjukkan penyalinan string menggunakan fungsi strcpy(). Programmu harus:

  1. Membaca bilangan bulat n yang menyatakan jumlah operasi string yang akan dilakukan
  2. Untuk setiap operasi:
    • Membaca string sumber dari input
    • Mendeklarasikan array karakter bernama destination dengan 100 elemen
    • Menggunakan strcpy() untuk menyalin string sumber ke dalam array tujuan
    • Mencetak string sumber asli dan string tujuan yang disalin
  3. Setelah semua operasi, tunjukkan bahwa string yang disalin tidak saling bergantung dengan:
    • Mengubah karakter pertama dari array tujuan terakhir menjadi 'X'
    • Mencetak string tujuan yang telah diubah untuk menunjukkan bahwa nilainya berubah

Ingat untuk menyertakan header <string.h> agar dapat menggunakan fungsi strcpy().

Outputmu harus menampilkan hasil dalam format berikut:

Source: [source_string]
Destination: [copied_string]
Source: [source_string]
Destination: [copied_string]
...
Modified last destination: [modified_string]

Contohnya, jika inputnya adalah:

3
hello
world
programming

Outputmu harus seperti berikut:

Source: hello
Destination: hello
Source: world
Destination: world
Source: programming
Destination: programming
Modified last destination: Xrogramming

Tantangan ini menguji pemahamanmu tentang penggunaan strcpy() untuk menyalin isi string dari satu array karakter ke array karakter lainnya, alokasi memori yang tepat untuk array tujuan, serta menunjukkan bahwa string yang disalin tidak bergantung pada sumbernya.

Coba sendiri

#include <stdio.h>
#include <string.h>

int main() {
    int n;
    scanf("%d", &n);
    
    char source[100];
    char destination[100];
    
    // TODO: Tulis kodemu di sini
    // Gunakan perulangan untuk memproses n operasi string
    // Untuk setiap operasi:
    // - Baca string source
    // - Gunakan strcpy() untuk menyalin source ke destination
    // - Cetak kedua string dalam format yang diminta
    
    // TODO: Setelah perulangan, ubah karakter pertama dari destination terakhir
    // dan cetak string yang sudah diubah
    
    return 0;
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C online