GNU/Linux >> Belajar Linux >  >> Linux

Tutorial Pemrograman C Bagian 5 - Variabel karakter

Dalam dua tutorial sebelumnya, kita telah membahas dasar-dasar variabel termasuk bagaimana variabel menempati memori. Tapi kami terutama berfokus pada bilangan bulat dan float. Dalam tutorial ini, kita akan membahas tentang karakter (atau variabel tipe karakter).

Variabel tipe 'char' menempati 1 byte (atau 8 bit) dalam memori. Seperti yang saya sebutkan sebelumnya dalam kasus 'int' dan 'float', Anda dapat memeriksa jumlah memori yang digunakan karakter pada sistem Anda menggunakan program C berikut:

#include 

int main (void)
{
printf("\n sizeof char dalam byte adalah %u", sizeof(char) );

return 0;
}

Di sistem saya, berikut adalah outputnya:

 ukuran karakter dalam byte adalah 1                                                                                    

Sekarang muncul pertanyaan tentang bagaimana menerima karakter sebagai input dari pengguna dan bagaimana mencetaknya dalam output. Nah, untuk menerima karakter dalam input, ada fungsi khusus bernama 'getchar'. Demikian pula, untuk mencetak karakter individu, Anda memiliki 'putchar'. Potongan kode berikut akan memberi Anda gambaran yang lebih baik tentang cara kerja fungsi-fungsi ini:

#include 

int main (void)
{
int c;
c =getchar();
putchar (c);

return 0;
}

Kode di atas, ketika dieksekusi, pertama-tama menunggu pengguna memasukkan karakter. Setelah itu, itu hanya menampilkan karakter yang sama di terminal.

Mungkin sedikit mengejutkan bagi Anda bahwa nilai yang dikembalikan 'getchar' disimpan dalam bilangan bulat, tetapi begitulah adanya (fungsi mengembalikan int). Tetapi Anda selalu dapat membandingkan nilai yang dikembalikan oleh 'getchar' dengan karakter. Ini contohnya:

#include 

int main (void)
{
int c;
c =getchar();
if (c =='a')
{
printf("cocok");
}
else
{
printf ("tidak cocok ");
}
return 0;
}

Jadi di sini, jika pengguna memasukkan 'a', maka program akan mencetak 'cocok' dalam output. Jika tidak, Anda akan melihat 'tidak cocok'.

Oh, dan ya, ini pertama kalinya kami menggunakan pernyataan 'if' dan 'else'. Seperti yang telah Anda pahami sekarang, 'if' memungkinkan Anda mengeksekusi serangkaian pernyataan jika suatu kondisi benar. Ketika kondisi 'if' gagal, eksekusi kode secara otomatis masuk ke blok 'else'. Perhatikan bahwa Anda dapat menggunakan pernyataan 'if' tanpa dan pernyataan 'else', tetapi sebaliknya tidak valid.

Sekarang, kembali ke getchar dan putchar, mari kita bahas dengan cepat bagaimana fungsi-fungsi ini dapat digunakan untuk memecahkan masalah kehidupan nyata. Katakanlah Anda ingin menghitung jumlah baris yang diberikan pengguna sebagai input ke program Anda, maka Anda dapat melakukannya dengan cara berikut:

#include 

int main (void)
{
int c =0, counter=0;
c =getchar();
while(c !=EOF)
{
c =getchar();
if(c =='\n')
counter =counter+1;
}
printf("\n Masukan berisi %d baris \n", counter+1);
return 0;
}

Untuk memahami program di atas, Anda harus tahu dulu apa itu EOF. Nah, EOF adalah singkatan dari End Of File. Ini digunakan untuk menandakan bahwa pengguna telah selesai memasukkan input.

Jadi ketika Anda, sebagai pengguna yang memberikan input, selesai dengan prosesnya, Anda menekan ctrl+d (beberapa kali). Tindakan inilah yang menghasilkan nilai yang setara dengan EOF, yang dapat diperiksa dalam program - seperti yang kami lakukan.

Kembali ke program, Anda terlebih dahulu memeriksa karakter input pertama untuk melihat apakah itu EOF. Jika tidak, Anda memasuki loop sementara dan terus memeriksa setiap karakter sampai Anda mendapatkan EOF. Selama seluruh proses ini, setiap kali Anda mendapatkan karakter baris baru (\n), Anda meningkatkan variabel 'penghitung'.

Setelah dan EOF terdeteksi, loop while dihentikan dan kami mencetak jumlah baris, yang satu lebih dari nilai counter.

Alasan kami menambahkan satu ke 'penghitung' dalam fungsi 'printf' adalah, jumlah baris selalu satu lebih banyak dari jumlah karakter baris baru (atau dalam istilah awam, berapa kali pengguna menekan tombol 'Enter'). Tentu saja, ini mengasumsikan setiap kali pengguna menekan enter, mereka juga memasukkan beberapa teks.

Jadi jika Anda memberikan program ini input seperti berikut:

Halo 
Selamat datang di HowtoForge
Terima kasih  

Outputnya adalah:

Masukan berisi 3 baris

Perhatikan bahwa kode kami mengasumsikan pengguna akan memberikan setidaknya satu baris. Beberapa kasus sudut tidak ditangani dengan sengaja untuk menjaga hal-hal sederhana. Salah satunya adalah ketika pengguna memberikan EOF tanpa memberikan karakter lain dalam input, dan yang lainnya adalah ketika sebuah baris telah disediakan tanpa memberikan karakter baris baru.

Menghitung jumlah baris hanyalah salah satu contoh. Anda juga dapat memperluas kode ini untuk menghitung jumlah kata yang dimasukkan oleh pengguna. Anggap ini sebagai tugas dan coba buat kode sendiri. Sebagai petunjuk, saya akan mengatakan pertimbangkan spasi (' ') dan tab ('\t'), mirip dengan cara kami mempertimbangkan baris baru ('\n') untuk menghitung jumlah baris.

Dalam tutorial ini, kita membahas sedikit lebih banyak tentang karakter, termasuk cara menggunakannya, menerimanya sebagai input dan mencetaknya sebagai output. Kami juga membahas contoh di mana fungsi getchar membantu kami menghitung jumlah baris dalam input. Cobalah tugas yang saya berikan di paragraf terakhir dan beri tahu saya jika Anda memiliki keraguan atau pertanyaan.


Linux
  1. Tutorial Pemrograman Linux C Bagian 10 - Lingkup Variabel

  2. Tutorial Pemrograman Linux C Bagian 9 :String

  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 C 4 - Variabel dan Memori

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

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