Page 135 - PEMROGRAMAN DASAR MENGGUNAKAN C
P. 135

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 */
   130   131   132   133   134   135   136   137   138   139   140