String merupakan kumpulan dari beberapa karakter yang diakhiri dengan karakter null ('\0')
. Di dalam bahasa pemrograman C, tidak terdapat tipe data string. Jadi, untuk membuat sebuah string digunakan array of char atau pointer. Sebuah string dimulai dan diakhiri dengan kutip dua (double quote), contoh "hello world"
bukan 'hello world'
. Kutip satu hanya digunakan untuk char
. Berikut contoh string dengan menggunakan array.
#include <stdio.h> int main() { char nama[5] = "Budi"; printf("%s\n", nama); return 0; }
Keluaran:
Budi
Pada source code di atas, karena array of char (nama[5]
) pada saat dideklarasi langsung diinisialisasi, maka penambahan karakter null ('\0')
pada akhir string tidak diperlukan karena akan ditambahkan secara otomatis. Jadi, cukup lebihkan banyak elemen array-nya sebanyak satu. Jika panjang stringnya empat (seperti contoh source code di atas), maka banyak elemen arraynya adalah lima. Elemen kelima (index ke-4) digunakan untuk karakter null ('\0')
.
Jika terdapat sebuah array of char sebagai berikut.
char nama[5];
Karena nama
belum diinisialisasi, kita tidak bisa melakukan operasi seperti di bawah ini untuk menyimpan string ke dalam nama
.
nama = "Budi"; //error
Untuk menyimpan string ke dalam sebuah array of char diperlukan bantuan fungsi strcpy
atau strncpy
yang ada pada header string.h
. Berikut contoh penggunaan strcpy
.
#include <stdio.h> #include <string.h> int main() { char nama[5]; strcpy(nama, "Budi"); printf("%s", nama); return 0; }
Keluaran:
Budi
Fungsi strcpy
terdiri dari dua parameter, yang pertama adalah variabel array untuk menampung string (dalam kasus ini adalah nama
) dan yang kedua adalah string yang akan disimpan ke dalam array of char (dalam kasus ini adalah "Budi"
). String yang disimpan ke variabel array dengan menggunakan fungsi strcpy
akan secara otomatis ditambahkan karakter null
di akhir string.
Beberapa Operasi Dasar String
strcmp
strcmp
Fungsi ini digunakan untuk membandingkan dua buah string, apakah sama atau berbeda karena untuk membandingkan dua buah string kita tidak dapat menggunakan operator pembanding “==” layaknya membandingkan dua buah angka. Fungsi strcmp ini case sensitive, jadi karakter 'A'
akan diperlakukan berbeda dengan karakter 'a'
. Fungsi strcmp
akan mengembalikan nilai selain nol jika kedua string yang dibandingkan tidak sama.
#include <stdio.h> #include <string.h> int main() { char string_1[6] = "hello"; char string_2[5] = "halo"; printf("%d\n", strcmp(string_1, string_2)); return 0; }
Keluaran:
1
Membandingkan dua buah string juga dapat dibuat sendiri, dengan memanfaatkan perulangan for
, while
atau do-while
.
strlen
Fungsi ini digunakan untuk menghitung panjang sebuah string. Panjang yang dihitung tidak termasuk karakter null (‘\0’).
#include <stdio.h> #include <string.h> int main() { char str[] = "hello world"; int panjang_string = strlen(str); printf("%d\n", panjang_string); return 0; }
Keluaran:
11
strcat
Fungsi ini digunakan untuk menggabungkan dua buah string.
#include <stdio.h> #include <string.h> int main() { char str[100] = "saya"; strcat(str, " lagi "); strcat(str, "belajar bahasa "); strcat(str, "pemrograman C"); printf("%s", str); return 0; }
Keluaran:
Saya lagi belajar bahasa pemrograman C