- Belajar mendeklarasikan dan menginisialisasi string
- Mengenal fungsi-fungsi string dalam C
- Memahami cara memanipulasi string
**Prerequisites:**
- Pemahaman tentang array dan pointer
- Pemahaman dasar tentang program C
---END_LESSON_INFO---
# String dalam C
## Mendefinisikan string
String dalam C sebenarnya adalah array dari karakter. Meskipun menggunakan pointer dalam C adalah subjek lanjutan, yang dijelaskan sepenuhnya nanti, kita akan menggunakan pointer ke array karakter untuk mendefinisikan string sederhana, dengan cara berikut:
```c
char * name = "John Smith";
```
Metode ini membuat string yang hanya bisa kita gunakan untuk membaca. Jika kita ingin mendefinisikan string yang bisa dimanipulasi, kita perlu mendefinisikannya sebagai array karakter lokal:
```c
char name[] = "John Smith";
```
Notasi ini berbeda karena mengalokasikan variabel array sehingga kita bisa memanipulasinya. Notasi kurung kosong `[]` memberi tahu kompiler untuk menghitung ukuran array secara otomatis. Ini sebenarnya sama dengan mengalokasikannya secara eksplisit, menambahkan satu ke panjang string:
```c
char name[] = "John Smith"; /* sama dengan */
char name[11] = "John Smith";
```
Alasan kita perlu menambahkan satu, meskipun string `John Smith` persis 10 karakter panjangnya, adalah untuk terminasi string: karakter khusus (sama dengan 0) yang menunjukkan akhir dari string. Akhir dari string ditandai karena program tidak tahu panjang string - hanya kompiler yang tahu menurut kode.
## Pemformatan string dengan printf
Kita bisa menggunakan perintah `printf` untuk memformat string bersama dengan string lainnya, dengan cara berikut:
Perhatikan bahwa ketika mencetak string, kita harus menambahkan karakter baris baru (`\n`) sehingga perintah `printf` berikutnya akan mencetak di baris baru.
Fungsi `strncmp` membandingkan antara dua string, mengembalikan angka 0 jika mereka sama, atau angka yang berbeda jika mereka berbeda. Argumen-argumen adalah dua string yang akan dibandingkan, dan panjang maksimum perbandingan. Ada juga versi yang tidak aman dari fungsi ini yang disebut `strcmp`, tetapi tidak disarankan untuk menggunakannya. Sebagai contoh:
Fungsi 'strncat' menambahkan n karakter pertama dari string src ke string tujuan di mana n adalah min(n,length(src)); Argumen yang dilewatkan adalah string tujuan, string sumber, dan n - jumlah maksimum karakter yang akan ditambahkan. Sebagai Contoh:
| strncmp() | Membandingkan n karakter string | `strncmp(str1, str2, n)` |
| strncat() | Menggabungkan n karakter string | `strncat(dest, src, n)` |
---EXERCISE---
# Latihan: Manipulasi String
Definisikan string `first_name` dengan nilai `John` menggunakan notasi pointer, dan definisikan string `last_name` dengan nilai `Doe` menggunakan notasi array lokal.
**Requirements:**
- Gunakan notasi pointer untuk first_name
- Gunakan notasi array lokal untuk last_name
- Pastikan string dapat dimanipulasi sesuai kebutuhan
**Expected Output:**
```
Done!
JohnBoe
```
Try writing your solution in the code editor below!