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 destinationFungsi 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.
Tantangan
MudahTulis program C yang menunjukkan penyalinan string menggunakan fungsi strcpy(). Programmu harus:
- Membaca bilangan bulat
nyang menyatakan jumlah operasi string yang akan dilakukan - Untuk setiap operasi:
- Membaca string sumber dari input
- Mendeklarasikan array karakter bernama
destinationdengan 100 elemen - Menggunakan
strcpy()untuk menyalin string sumber ke dalam array tujuan - Mencetak string sumber asli dan string tujuan yang disalin
- 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
programmingOutputmu harus seperti berikut:
Source: hello
Destination: hello
Source: world
Destination: world
Source: programming
Destination: programming
Modified last destination: XrogrammingTantangan 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;
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
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