Page 138 - Project Akhir Media Pendidikan
P. 138
a. Fungsi strcpy()
Prototipe dari fungsi ini adalah sebagai berikut.
char *strcpy(char *str1, char *str2);
Fungsi ini akan melakukan penyalinan (copy) dari string str2 ke str1 (termasuk juga
karakter null). Namun hal yang perlu diperhatikan di sini adalah keduanya merupakan
pointer sehingga pada saat proses penyalinan string, kita harus melakukan pengalokasian
memori terlebih dahulu untuk pointer str1. Apabila pengalokasian memori tersebut tidak
dilakukan maka akan menimbulkan masalah dengan memori, yaitu berupa penimpaan
(overwrite) sebanyak strlen(str2) byte. Berikut ini contoh program yang akan
mengilustrasikan penggunaan fungsi strcpy().
#include <stdio.h>
#include <string.h>
#include <stdlib.h> /* untuk menggunakan fungsi malloc() */
int main(void) {
char str_sumber[] = “Ini adalah string yang akan disalin”;
/* Mendeklarasikan variabel untuk menampung string hasil
penyalinan */
char str_tujuan1[100]; /* mengalokasikan 100 byte untuk 100
karakter */
char *str_tujuan2; /* pointer ke char namun belum
dialokasikan */
char *str_tujuan3; /* pointer ke char namun belum
dialokasikan */
/* Melakukan penyalinan dari str_sumber ke variabel
str_tujuan1 */
strcpy(str_tujuan1, str_sumber);
/* Melakukan penyalinan dari str_sumber ke variabel
str_tujuan2 */
/* Di sini kita harus melakukan alokasi memori terlebih
dahulu */
str_tujuan2 =
(char *) malloc(sizeof(char) * (strlen(str_sumber) + 1));
strcpy(str_tujuan2, str_sumber);
/* Menampilkan string hasil penyalinan */
printf(“str_tujuan1 : %s\n”, str_tujuan1);
printf(“str_tujuan2 : %s\n”, str_tujuan2);
/* Berikut ini contoh penggunaan strcpy yang SALAH */
/* Melakukan penyalinan dari str_sumber ke str_tujuan3 tanpa
alokasi str_tujuan3 */
/* strcpy(str_tujuan3, str_sumber); */ /* SALAH */
134