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