String di C: Cara Mendeklarasikan & Menginisialisasi Variabel String di C
Apa itu String di C?
A String dalam C tidak lain hanyalah kumpulan karakter dalam urutan linier. 'C' selalu memperlakukan string sebagai data tunggal meskipun mengandung spasi. Karakter tunggal didefinisikan menggunakan representasi tanda kutip tunggal. String direpresentasikan menggunakan tanda kutip ganda.
Example, "Welcome to the world of programming!"
'C' menyediakan pustaka standar yang berisi banyak fungsi yang dapat digunakan untuk melakukan operasi rumit dengan mudah pada String di C.
Bagaimana cara mendeklarasikan string di C?
AC String adalah array sederhana dengan char sebagai tipe datanya. bahasa 'C' tidak secara langsung mendukung string sebagai tipe data. Oleh karena itu, untuk menampilkan String di C, Anda perlu menggunakan array karakter.
Sintaks umum untuk mendeklarasikan variabel sebagai String di C adalah sebagai berikut,
char string_variable_name [array_size];
Deklarasi string klasik dapat dilakukan sebagai berikut:
char string_name[string_length] = "string";
Ukuran array harus ditentukan saat mendeklarasikan variabel String C karena digunakan untuk menghitung berapa banyak karakter yang akan disimpan di dalam variabel string di C. Beberapa contoh deklarasi string yang valid adalah sebagai berikut,
char first_name[15]; //declaration of a string variable char last_name[15];
Contoh di atas merepresentasikan variabel string dengan ukuran array 15. Artinya, array string C yang diberikan mampu menampung paling banyak 15 karakter. Pengindeksan array dimulai dari 0 sehingga akan menyimpan karakter dari posisi 0-14. Kompiler C secara otomatis menambahkan karakter NULL '\0' ke array karakter yang dibuat.
Bagaimana Menginisialisasi String di C?
Mari kita pelajari inisialisasi String di C. Contoh berikut menunjukkan inisialisasi String di C,
char first_name[15] = "ANTHONY"; char first_name[15] = {'A','N','T','H','O','N','Y','\0'}; // NULL character '\0' is required at end in this declaration char string1 [6] = "hello";/* string size = 'h'+'e'+'l'+'l'+'o'+"NULL" = 6 */ char string2 [ ] = "world"; /* string size = 'w'+'o'+'r'+'l'+'d'+"NULL" = 6 */ char string3[6] = {'h', 'e', 'l', 'l', 'o', '\0'} ; /*Declaration as set of characters ,Size 6*/
Dalam string3, karakter NULL harus ditambahkan secara eksplisit, dan karakter tersebut diapit dalam tanda kutip tunggal.
'C' juga memungkinkan kita untuk menginisialisasi a variabel string tanpa mendefinisikan ukuran array karakter. Hal ini dapat dilakukan dengan cara berikut,
char first_name[ ] = "NATHAN";
Nama Strings di C bertindak sebagai pointer karena pada dasarnya adalah sebuah array.
Input String C: Program C untuk Membaca String
Saat menulis program interaktif yang meminta masukan dari pengguna, C menyediakan fungsi scanf(), get(), dan fgets() untuk menemukan baris teks yang dimasukkan dari pengguna.
Saat kita menggunakan scanf() untuk membaca, kita menggunakan penentu format “%s” tanpa menggunakan “&” untuk mengakses alamat variabel karena nama array bertindak sebagai penunjuk.
Sebagai contoh:
#include <stdio.h> int main() { char name[10]; int age; printf("Enter your first name and age: \n"); scanf("%s %d", name, &age); printf("You entered: %s %d",name,age); }
Keluaran:
Enter your first name and age: John_Smith 48
Masalah dengan fungsi scanf adalah ia tidak pernah membaca seluruh String di C. Ini akan menghentikan proses pembacaan segera setelah spasi putih, form feed, tab vertikal, baris baru atau kembalinya terjadi. Misalkan kita memberikan input sebagai “Tutorial Guru99” maka fungsi scanf tidak akan pernah membaca keseluruhan string karena karakter spasi putih muncul di antara kedua nama tersebut. Fungsi scanf hanya akan membaca Guru99.
Untuk membaca string yang berisi spasi, kita menggunakan fungsi get(). Mengabaikan spasi putih. Itu berhenti
membaca ketika baris baru tercapai (tombol Enter ditekan).
Sebagai contoh:
#include <stdio.h> int main() { char full_name[25]; printf("Enter your full name: "); gets(full_name); printf("My full name is %s ",full_name); return 0; }
Keluaran:
Enter your full name: Dennis Ritchie My full name is Dennis Ritchie
Alternatif lain yang lebih aman untuk get() adalah fungsi fgets() yang membaca sejumlah karakter tertentu.
Sebagai contoh:
#include <stdio.h> int main() { char name[10]; printf("Enter your name plz: "); fgets(name, 10, stdin); printf("My name is %s ",name); return 0;}
Keluaran:
Enter your name plz: Carlos My name is Carlos
Argumen fgets() adalah:
- nama stringnya,
- jumlah karakter yang harus dibaca,
- stdin artinya membaca dari input standar yaitu keyboard.
Output String C: Program C untuk Mencetak String
Fungsi printf standar digunakan untuk mencetak atau menampilkan String dalam C pada perangkat output. Penentu format yang digunakan adalah %s
Contoh,
printf("%s", name);
Output string dilakukan dengan fungsi fputs() dan printf().
fungsi fput()
Fputs() memerlukan nama string dan penunjuk ke tempat Anda ingin menampilkan teks. Kami menggunakan stdout yang mengacu pada output standar untuk mencetak ke layar.
Sebagai contoh:
#include <stdio.h> int main() {char town[40]; printf("Enter your town: "); gets(town); fputs(town, stdout); return 0;}
Keluaran:
Enter your town: New York New York
menempatkan fungsi
Fungsi puts digunakan untuk mencetak string dalam C pada perangkat keluaran dan memindahkan kursor kembali ke posisi pertama. Fungsi puts dapat digunakan dengan cara berikut,
#include <stdio.h> int main() { char name[15]; gets(name); //reads a string puts(name); //displays a string return 0;}
Sintaks fungsi ini relatif sederhana dibandingkan fungsi lainnya.
Perpustakaan string
Pustaka 'C' standar menyediakan berbagai fungsi untuk memanipulasi string dalam suatu program. Fungsi-fungsi ini juga disebut sebagai penangan string. Semua penangan ini hadir di dalam berkas tajuk.
fungsi | Tujuan |
---|---|
strlen() | Fungsi ini digunakan untuk mencari panjang suatu string. Ini mengembalikan berapa banyak karakter yang ada dalam string tidak termasuk karakter NULL. |
strcat(str1, str2) | Fungsi ini digunakan untuk menggabungkan dua string menjadi satu string. Itu Menambahkan atau menggabungkan str2 ke akhir str1 dan mengembalikan pointer ke str1. |
strcmp(str1, str2) | Fungsi ini digunakan untuk membandingkan dua string satu sama lain. Ia mengembalikan 0 jika str1 sama dengan str2, kurang dari 0 jika str1 < str2, dan lebih besar dari 0 jika str1 > str2. |
Mari pertimbangkan program di bawah ini yang mendemonstrasikan fungsi perpustakaan string:
#include <stdio.h> #include <string.h> int main () { //string initialization char string1[15]="Hello"; char string2[15]=" World!"; char string3[15]; int val; //string comparison val= strcmp(string1,string2); if(val==0){ printf("Strings are equal\n"); } else{ printf("Strings are not equal\n"); } //string concatenation printf("Concatenated string:%s",strcat(string1,string2)); //string1 contains hello world! //string length printf("\nLength of first string:%d",strlen(string1)); printf("\nLength of second string:%d",strlen(string2)); //string copy printf("\nCopied string is:%s\n",strcpy(string3,string1)); //string1 is copied into string3 return 0; }
Keluaran:
Strings are not equal Concatenated string:Hello World! Length of first string:12 Length of second string:7 Copied string is:Hello World!
Fungsi perpustakaan penting lainnya adalah:
- strncmp(str1, str2, n) : ia mengembalikan 0 jika n karakter pertama dari str1 sama dengan n karakter pertama dari str2, kurang dari 0 jika str1 < str2, dan lebih besar dari 0 jika str1 > str2.
- strncpy(str1, str2, n) Fungsi ini digunakan untuk menyalin string dari string lain. Menyalin n karakter pertama str2 ke str1
- strchr(str1, c): mengembalikan pointer ke kemunculan pertama char c di str1, atau NULL jika karakter tidak ditemukan.
- strrchr(str1, c): mencari str1 secara terbalik dan mengembalikan pointer ke posisi char c di str1, atau NULL jika karakter tidak ditemukan.
- strstr(str1, str2): mengembalikan pointer ke kemunculan str2 pertama di str1, atau NULL jika str2 tidak ditemukan.
- strncat(str1, str2, n) Menambahkan (menggabungkan) n karakter pertama dari str2 ke akhir str1 dan mengembalikan pointer ke str1.
- strlwr() : untuk mengubah string menjadi huruf kecil
- strupr() : untuk mengubah string menjadi huruf besar
- strrev() : untuk membalikkan string
Mengubah String menjadi Angka
Dalam pemrograman C, kita dapat mengubah serangkaian karakter numerik menjadi nilai numerik untuk mencegah kesalahan saat dijalankan. Pustaka stdio.h berisi fungsi-fungsi berikut untuk mengubah string menjadi angka:
- int atoi(str) Merupakan singkatan dari ASCII ke integer; mengonversi str ke nilai int yang ekuivalen. 0 dikembalikan jika karakter pertama bukan angka atau tidak ada angka yang ditemukan.
- double atof(str) Merupakan singkatan dari ASCII to float, yang mengubah str menjadi nilai yang ekuivalen dengan double. 0.0 dikembalikan jika karakter pertama bukan angka atau tidak ada angka yang ditemukan.
- long int atol(str) Merupakan singkatan dari ASCII to long int, Mengonversi str ke nilai integer long yang ekuivalen. 0 dikembalikan jika karakter pertama bukan angka atau tidak ada angka yang ditemukan.
Program berikut menunjukkan fungsi atoi():
#include <stdio.h> int main() {char *string_id[10]; int ID; printf("Enter a number: "); gets(string_id); ID = atoi(string_id); printf("you enter %d ",ID); return 0;}
Keluaran:
Enter a number: 221348 you enter 221348
- Deklarasi penunjuk string seperti char *string = “bahasa” adalah konstanta dan tidak dapat diubah.
Kesimpulan
- String adalah urutan karakter yang disimpan dalam array karakter.
- String adalah teks yang diapit tanda kutip ganda.
- Karakter seperti 'd' bukanlah string dan ditandai dengan tanda kutip tunggal.
- 'C' menyediakan fungsi perpustakaan standar untuk memanipulasi string dalam suatu program. Manipulator string disimpan di berkas tajuk.
- Sebuah string harus dideklarasikan atau diinisialisasi sebelum digunakan ke dalam suatu program.
- Ada fungsi string input dan output yang berbeda, masing-masing memiliki fiturnya sendiri.
- Jangan lupa sertakan perpustakaan string untuk bekerja dengan fungsinya
- Kita dapat mengubah string menjadi angka melalui atoi(), atof() dan atol() yang sangat berguna untuk proses coding dan decoding.
- Kita dapat memanipulasi string yang berbeda dengan mendefinisikan array string di C.