Page 140 - Project Akhir Media Pendidikan
P. 140

char *strdup(char *str);


                      Fungsi ini akan mengembalikan pointer ke string dimana ruangnya telah dipesan secara
                      otomatis  degan  menggunakan  fungsi  malloc().  Apabila  terdapat  kegagalan  dalam
                      pemesanan memori maka yang akan dikembalikan adalah pointer  NULL. Untuk lebih
                      memahaminya, perhatikan contoh program di bawah ini yang akan mengilustrasikan
                      perbedaan fungsi strdup() dengan strcpy().


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

                      int main(void) {
                         char str_sumber[] = “Pemrograman Menggunakan Bahasa C”;
                         char *str_tujuan;              /* pointer ke char yang belum
                                                           dialokasi */
                         if ((str_tujuan = strdup(str_sumber)) != NULL) {
                           printf(“%s”, str_tujuan);
                         }
                         return 0;
                      }



                      Perhatikan sintak di atas, di sana tampak pointer str_tujuan  tidak perlu dialokasikan
                      terlebih  dahulu  untuk  melakukan  proses  penyalinan  string.  Hal  ini  sangat  berbeda
                      dengan  fungsi  strcpy()  yang  menuntut  kita  mengalokasikan  ruang  memori  terlebih
                      dahulu  untuk  menyimpan  string  hasil  penyalinan.  Adapun  hasil  yang  akan  diberikan
                      dari program di atas adalah sebagai berikut.


                      Pemrograman Menggunakan Bahasa C



                      6.11.3.4.  Membandingkan String

                      Dalam  bahasa  C  standar,  terdapat  dua  buah  fungsi  yang  dapat  melakukan
                      pembandingan  terhadap  dua  buah  string,  yaitu  fungsi  strcmp()  dan  strncmp().
                      Namun kebanyakan kompilator C juga telah menyediakan fungsi-fungsi lainnya yang
                      spesifik untuk keperluan ini Berikut ini penjelasan dari masing-masing fungsi tersebut.

                      a.  Fungsi strcmp()

                      Prototipe dari fungsi ini adalah sebagai berikut.


                      int strcmp(char *str1, char *str2);





                                                          136
   135   136   137   138   139   140   141   142   143   144   145