GNU/Linux >> Belajar Linux >  >> Linux

Tutorial Pemrograman Linux C Bagian 9 :String

Dalam seri tutorial pemrograman C yang sedang berlangsung ini, kita telah menyentuh konsep array karakter. Terkait erat dengan array karakter adalah konsep string, yang akan kita bahas di sini.

String berbeda dari array karakter di satu area utama - string diakhiri dengan karakter Null '\0'. Tidak ada karakter pengakhiran seperti itu dalam array karakter. Potongan kode berikut menunjukkan beberapa cara untuk mendefinisikan string:

#include 

int main()
{
char str[] ="string";
char str1[] ={ 's','t','r','i','n','g','\0'};
char str2[10] ="string";
char str3 [10] ={'s','t','r','i','n','g','\0'};
char *str4 ="string";

printf("\n str=%s, str1=%s, str2=%s, str3=%s, dan str4=%s", str, str1, str2, str3, str4);

return 0;
}

Jadi, sekelompok karakter dalam tanda kutip ganda adalah string (mengakhiri karakter Null tersirat di sana), dan serangkaian karakter yang secara eksplisit diakhiri dengan karakter \0 juga merupakan string.

Keluaran dari program ini adalah:

 str=string, str1=string, str2=string, str3=string, dan str4=string

Ingatlah bahwa Anda tidak dapat mencetak array karakter non-string dengan cara ini, karena tidak ada karakter Null yang mengakhiri di sana untuk menandakan akhir dari array. Berikut sepotong kode yang mencoba melakukan ini:

#include 

int main()
{
char str[] ={'e','n','d'};
char c ='t';

printf("\n str=%s", str);

return 0;
}

Tetapi pada akhirnya malah mencetak nilai sampah:

str=end??

Selanjutnya, seperti penentu format %s di 'Printf' memberitahu kompiler untuk memperlakukan variabel input sebagai string, Anda juga dapat menggunakan %s dalam fungsi 'scanf' untuk menerima string sebagai input dari pengguna. Ini contohnya:

#include 

int main()
{
char str[30];

printf("\n Masukkan string dengan panjang kurang dari 30 karakter:");
scanf("%s",str);

printf("\n str=%s", str);

kembali 0;
}

Perlu disebutkan bahwa urutan nol atau lebih karakter yang dikelilingi oleh tanda kutip ganda disebut konstanta string, atau literal string. Ini berarti "howtoforge" dan "" adalah konstanta string atau literal string.

Anda dapat menemukan panjang string menggunakan fungsi strlen() standar. Ini contohnya:

#include 

int main()
{
char str[] ="howtoforge";

printf( "\n Panjang string 'howtoforge' adalah:%d", strlen(str));

return 0;
}

Output yang dihasilkan oleh program ini adalah 10, yang merupakan jumlah karakter dalam 'howtoforge', dan panjangnya.

Selanjutnya, perlu diingat bahwa karakter dalam tanda kutip tunggal (seperti 'd') dan karakter dalam tanda kutip ganda (seperti "d") berbeda satu sama lain. Sementara yang pertama adalah konstanta karakter (yang dapat digunakan untuk menghasilkan nilai numerik karakter dalam set karakter mesin), yang kedua adalah string (artinya ada karakter \0 yang mengakhiri di dalamnya).

Akhirnya, mari kita lihat bagaimana string dapat diteruskan sebagai argumen ke fungsi.

#include 

void change_value(char s[])
{
s[0] ='H';
s[ 5] ='F';

printf("%s", s);

}

int main()
{
char str[] ="howtoforge";

change_value(str);

return 0;
}

Jadi pada program di atas, nama array 'str' yang dilewatkan sebagai argumen karena mengacu pada alamat dasar array. Deklarasi untuk fungsi 'change_value' sedemikian rupa sehingga mengharapkan array sebagai input. Berikut adalah output dari program ini:

HowtoForge                                                                                           > 

Jadi dalam tutorial ini, kita membahas dasar-dasar string, termasuk bagaimana mereka didefinisikan dan bagaimana mereka dapat digunakan. Kita akan mempelajari lebih lanjut tentang string dalam tutorial yang akan datang, tetapi artikel ini seharusnya cukup untuk membantu Anda memulai. Beri tahu kami di komentar di bawah jika Anda memiliki pertanyaan atau keraguan terkait string.


Linux
  1. Tutorial Pemrograman C Bagian 5 - Variabel karakter

  2. Tutorial Pemrograman Linux C Bagian 10 - Lingkup Variabel

  3. Tutorial Pemrograman Linux C Bagian 8 - Call by Value Vs Call by Pointer/Alamat

  1. Tutorial Pemrograman Linux C Bagian 8 - Call by Value Vs Call by Pointer/Alamat

  2. Tutorial Pemrograman Linux C Bagian 8 - Call by Value Vs Call by Pointer/Alamat

  3. Tutorial Pemrograman Linux C Bagian 14 - Contoh praktis operator Bitwise

  1. Tutorial Pemrograman Linux C Bagian 12 - Operator Penugasan dan Ekspresi Bersyarat

  2. Tutorial Pemrograman Linux C Part 11 - Operator Aritmatika, Relasional, dan Logika

  3. Praktik Pengkodean Terbaik untuk Pemrograman Sistem Linux dalam Bahasa C – Bagian 1