Scanset Bahasa C dan Fungsinya
// 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;
}
Masukkan sebuah kata: Makan
Kata yang dimasukkan: M
scanf("%[^o]s", str);
Contoh: Perhatikan program 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;
}
Masukkan kata: kantor
Kata yang dimasukkan: kant
[root@centos-6 C]#
// 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;
}
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().
- Perbedaan Utama Getc, Getchar, Getch, dan Getche pada Bahasa C [klik]
- 2 Perbedaan Utama Format Specifier %d dan %i pada Bahasa C [klik]
- 2 Fakta Menarik tentang Fungsi fflush(stdin) pada Bahasa C [klik]
- 2 Cara Membersihkan Input Buffer pada Bahasa C dan C++ [klik]
- Fakta tentang Scanf dan Fscanf pada Bahasa C [klik]
- 6 Poin Penting Fungsi getchar_unlocked() pada Bahasa C [klik]
- 2 Solusi Utama untuk Fgets dan Gets Ketika Digunakan Setelah Scanf pada Bahasa C [klik]
Apa yang dimasukdengan scanset pada bahasa C?
BalasHapusScanset 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.
HapusKetika scanset diproses, maka scanf() hanya dapat memproses karakter-karakter yang disebutkan sebelumnya pada scanset.
Saya mencoba untuk memahami fungsi dari 'scanset' pada bahasa C.
BalasHapusSaya 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.
Anda tidak dapat memiliki inversi (^) pada bagian tengah seperti yang dituliskan tersebut, karakter tersebut harus menjadi karakter perama dalam sebuah set jika ingin digunakan.
HapusAnda dapat memasukkan spasi dalam sebuah set seperti kode berikut:
scanf ("% [A-Za-z]", c);
Insyallah dapat bekerja dengan lancar.
oke terima kasih informasinya, akan segera dipraktikkan.
Hapus