Artikel Terbaru

4 Keunggulan Utama Bitcoin

Sebelum membicarakan tentang bitcoin, terlebih dahulu mari pahami apa yang dimaksud dengan uang. Apa sebenarnya yang dimaksud dengan uang? Pada dasarnya, uang adalah segala sesuatu yang mewakili nilai tertentu.

Fakta tentang Scanset pada Bahasa C

Keluarga dari fungsi scanf mendukung penggunaan specifier scanset untuk menampilkan hasil dengan %[]. Pada scanset, dapat ditentukan karakter tunggal dari jangkauan sekumpulan karakter. Ketika scanset diproses, scanf hanya akan memproses karakter yang menjadi bagian dari scanset. Scanset dapat didefinisikan dengan cara meletakkan karakter dalam square brackets '[]'. Scanset bersifat case-sensitive.

Perhatikan contoh berikut program berikut ini. Diberikan contoh program dalam bahasa C yang akan menyimpan hanya huruf kapital untuk karakter array 'str', karakter lain yang berbeda tidak akan disimpan pada karakter array tersebut.

// Contoh sederhana dari

// scanset

#include <stdio.h>

 

int main(void)

{

char str[128];

 

printf("Masukkan sebuah ka"

"ta: ");

scanf("%[A-Z]s", str);

 

printf("Kata yang dimasukkan:"

" %s\n", str);

 

return 0;

}

Output:
  [root@centos-6 C]# ./scan-set
  Masukkan sebuah kata: Makan
  Kata yang dimasukkan: M

Nilai nilai karakter pertama dari scanset adalah '^', maka specifier akan berhenti membaca program setelah kejadian pertama dari karakter. Contoh, nilai scanset berikut akan membaca semua karakter tetapi akan berhenti setelah karakter 'o' muncul.

scanf("%[^o]s", str);

Perhatikan contoh berikut ini:

// Contoh lain scanset

#include <stdio.h>

 

int main(void)

{

char str[128];

 

printf("Masukkan kata: ");

scanf("%[^o]s", str);

 

printf("Kata yang dimasuk"

"kan: %s\n", str);

 

return 0;

}

Output:
  [root@centos-6 C]# ./scan-set
  Masukkan kata: kantor
  Kata yang dimasukkan: kant
  [root@centos-6 C]#

Implementasikan fungsi gets() dengan menggunakan scanset. Fungsi gets() akan membaca sebuah baris dari stdin menuju titik buffer oleh s sampai akhir baris atau EOF (End Of File) ditemukan.

// Implementasi dari fungsi

// gets() menggunakan scanset

#include <stdio.h>

 

int main(void)

{

char str[128];

 

printf("Masukkan kata beserta"

" spasi: ");

scanf("%[^\n]s", str);

 

printf("Kata yang dimasukkan:"

" %s\n", str);

 

return 0;

}

Output:
  [root@centos-6 C]# ./gets
  Masukkan kata beserta spasi: selamat datang
  Kata yang dimasukkan: selamat datang
  [root@centos-6 C]#

Catatan: Perlu diperhatikan bahwa, penggunaa gets() bukanlah suatu yang umum untuk digunakan. Terutama pada Linux.

Jangan menggunakan gets() karena tidak dimungkinkan untuk memberitahukan sesuatu tanpa mengetahui data pada tingkat lebih lanjut mengenai seberapa banyak karakter gets() yang dapat dibaca, dan karena gets() akan terus menerus menyimpan karakter sebelumnya hingga akhir dari buffer, dan hal ini adalah sesuatu kurang aman untuk digunakan karena hal ini dapat memengaruhi keamanan dari komputer yang digunakan. Karena itu ketimbang menggunakan gets(), jauh lebih baik jika menggunakan fgets().

Komentar

  1. Apa yang dimasukdengan scanset pada bahasa C?

    BalasHapus
    Balasan
    1. Scanset pada dasarnya dalah sebuah perintah spesifikasi yang didukung oleh bagian dari fungsi scanf, dimana fungsi tersebut diwakili oleh %[]. Dengan menggunakan scanset, dapat ditentukan satu karakter atau sekumpulan karakter yang akan diinputkan dan bersifat Case sensitif.

      Ketika scanset diproses, maka scanf() hanya dapat memproses karakter-karakter yang disebutkan sebelumnya pada scanset.

      Hapus
  2. Saya mencoba untuk memahami fungsi dari 'scanset' pada bahasa C.

    Saya ingin memasukkan string yang terdiri dari huruf A-Z, a-z dan dapat memiliki spasi diantaranya.

    Contoh; jika nilai inputnya dalah: ABCD abcd 123

    maka hasil outputnya adalah ABCD abcd.

    saya mencoba melakukan hal tersebut dengan cara:

    scanf ("% [A-ZA-Z ^ \ n]", c),

    dimana variabel C adalah tipe array char, namun hal tersebut tidak dapaat membaca spasi yang diinputkan.

    Tolong berikan saran cara yang benar untuk menuliskan kode program tersebut.

    BalasHapus
    Balasan
    1. Anda tidak dapat memiliki inversi (^) pada bagian tengah seperti yang dituliskan tersebut, karakter tersebut harus menjadi karakter perama dalam sebuah set jika ingin digunakan.

      Anda dapat memasukkan spasi dalam sebuah set seperti kode berikut:

      scanf ("% [A-Za-z]", c);

      Insyallah dapat bekerja dengan lancar.

      Hapus
    2. oke terima kasih informasinya, akan segera dipraktikkan.

      Hapus

Posting Komentar

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung. :D

Catatan: setiap iklan yang ditayangkan pada blog ini bersumber dari google adsense. Dengan jenis iklan yang dipilih adalah, sebagai berikut.

POIN 1, Iklan yang ditampilkan hanya boleh berbahasa indonesia atau berbahasa inggris. Tidak menerima jenis iklan dalam bahasa yang lain selain yang telah disebutkan karena blog ini dibuat untuk para pengunjung dari negara atau orang yang berbahasa Indonesia.

POIN 2, Setiap gambar yang ditampilkan pada iklan sifatnya tidak mengganggu para pengunjung yang melihat blog, atau tidak boleh menampilkan gambar yang bersifat menjijikkan atau merangsang rasa mual.

POIN 3, Jenis iklan yang dipasang bukan merupakan iklan spam, atau berisi dan mengarahkan pengunjung ke alamat yang berbahaya atau bersifat penipuan.

POIN 4, Segala bentuk iklan tunduk dan patuh pada ketentuan dari pihak Adsense google dan pemilik blog.

POIN 5, Segala jenis iklan yang tidak bertentangan dengan poin 1-4 yang dijelaskan sebelumnya, maka iklan tersebut dapat ditampilkan pada blog.

POIN 6, Jika ada pihak ketika yang ingin memasang iklan pada blog ini secara langsung, maka dapat menghubungi pemilik blog melalui kontak 0882 3218 8316.



~ Ikatlah Ilmu dengan Memostingkannya ~

Hot Artikel

Enkapsulasi pada Java

Perbedaan stdio.h dan stdlib.h pada Bahasa C

4 Contoh Program Java dan Multiple Inheritance

Perbedaan Antara int main() dan int main(void) pada Bahasa C