String C: Cara Kerja Array Karakter yang Diakhiri Null
String sebenarnya adalah array satu dimensi karakter yang diakhiri oleh karakter null '\0'. Oleh karena itu, string null-terminated berisi karakter yang menyusun string diikuti oleh null.
Deklarasi dan inisialisasi berikut membuat string yang terdiri dari kata "Hello". Untuk menampung karakter null di akhir array, ukuran array karakter yang berisi string adalah satu lebih dari jumlah karakter dalam kata "Hello."
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; Jika Anda mengikuti aturan inisialisasi array maka Anda dapat menulis pernyataan di atas sebagai berikut −
char greeting[] = "Hello";
Berikut adalah presentasi memori dari string yang didefinisikan di atas dalam C/C++ −
Sebenarnya, Anda tidak menempatkan karakter null di akhir konstanta string. Compiler C secara otomatis menempatkan '\0' di akhir string saat menginisialisasi array. Mari kita coba mencetak string yang disebutkan di atas −
Live Demo
#include <stdio.h> int main () { char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; printf("Greeting message: %s\n", greeting ); return 0; } Saat kode di atas dikompilasi dan dieksekusi, hasilnya adalah sebagai berikut −
Greeting message: Hello
C mendukung berbagai macam fungsi yang memanipulasi string null-terminated −
| Sr.No. | Fungsi & Tujuan |
| 1 | strcpy(s1, s2); Menyalin string s2 ke string s1. |
| 2 | strcat(s1, s2); Menggabungkan string s2 di akhir string s1. |
| 3 | strlen(s1); Mengembalikan panjang string s1. |
| 4 | strcmp(s1, s2); Mengembalikan 0 jika s1 dan s2 sama; kurang dari 0 jika s1<s2; lebih dari 0 jika s1>s2. |
| 5 | strchr(s1, ch); Mengembalikan pointer ke kemunculan pertama karakter ch dalam string s1. |
| 6 | strstr(s1, s2); Mengembalikan pointer ke kemunculan pertama string s2 dalam string s1. |
Contoh berikut menggunakan beberapa fungsi yang disebutkan di atas −
Live Demo
#include <stdio.h> #include <string.h> int main () { char str1[12] = "Hello"; char str2[12] = "World"; char str3[12]; int len ; /* copy str1 into str3 */ strcpy(str3, str1); printf("strcpy( str3, str1) : %s\n", str3 ); /* concatenates str1 and str2 */ strcat( str1, str2); printf("strcat( str1, str2): %s\n", str1 ); /* total lenghth of str1 after concatenation */ len = strlen(str1); printf("strlen(str1) : %d\n", len ); return 0; } Saat kode di atas dikompilasi dan dieksekusi, hasilnya adalah sebagai berikut −
strcpy( str3, str1) : Hello strcat( str1, str2): HelloWorld strlen(str1) : 10