C - Senar
String sebenarnya adalah array karakter satu dimensi yang diakhiri oleh null karakter '\0'. Jadi string yang diakhiri null berisi karakter yang membentuk string diikuti oleh null .
Deklarasi dan inisialisasi berikut membuat string yang terdiri dari kata "Halo". Untuk menahan karakter null di akhir larik, ukuran larik karakter yang berisi string adalah satu lebih banyak dari jumlah karakter dalam kata "Halo."
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 null karakter di akhir konstanta string. Kompiler C secara otomatis menempatkan '\0' di akhir string ketika menginisialisasi array. Mari kita coba mencetak string yang disebutkan di atas
Demo Langsung
#include <stdio.h>
int main () {
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
printf("Greeting message: %s\n", greeting );
return 0;
}
Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut
Greeting message: Hello
C mendukung berbagai fungsi yang memanipulasi string yang diakhiri null −
No.Pr. | Fungsi &Tujuan |
1 |
strcpy(s1, s2);
Menyalin string s2 ke string s1. |
2 |
strcat(s1, s2);
Menggabungkan string s2 ke 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 s1s2. |
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
Demo Langsung
#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;
}
Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut
strcpy( str3, str1) : Hello
strcat( str1, str2): HelloWorld
strlen(str1) : 10