Menu
CoddyTech

Input String dengan scanf

Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 14 dari 63.

Sekarang setelah kamu memahami cara kerja string dengan terminator null, saatnya mempelajari cara menerima input string dari pengguna. Fungsi scanf dapat membaca string menggunakan penentu format %s, tetapi fungsi ini memiliki batasan penting yang perlu kamu pahami.

Untuk membaca string dengan scanf, gunakan format %s dan berikan nama array karakter kamu (tanpa operator &, karena nama array sudah berupa alamat):

char word[50];
printf("Enter a word: ");
scanf("%s", word);
printf("You entered: %s\n", word);

Namun, scanf("%s", ...) memiliki batasan penting: fungsi ini berhenti membaca segera setelah menemukan karakter spasi kosong (spasi, tab, atau baris baru). Artinya, jika pengguna mengetik "Hello World", scanf hanya akan menangkap "Hello" dan membiarkan "World" di buffer input.

Masalah serius lainnya adalah scanf tidak memeriksa apakah input muat di array-mu. Jika seseorang memasukkan kata yang lebih panjang daripada kapasitas array-mu, hal itu akan menyebabkan buffer overflow, yang berpotensi membuat programmu crash atau menimbulkan celah keamanan. Selalu pastikan array karakter cukup besar untuk menampung input yang diharapkan.

Terlepas dari keterbatasan ini, scanf("%s", ...) sangat cocok untuk membaca satu kata, dan itulah yang akan kamu latih dalam tantangan berikutnya.

challenge icon

Tantangan

Mudah

Tulis program C yang menunjukkan cara membaca input string dari pengguna menggunakan scanf dan menampilkannya kembali. Programmu harus:

  1. Mendeklarasikan array karakter bernama username dengan 30 elemen untuk menyimpan input pengguna
  2. Mendeklarasikan array karakter bernama hobby dengan 25 elemen untuk menyimpan input lainnya
  3. Menggunakan printf untuk meminta input kepada pengguna dengan pesan "Enter your username:"
  4. Menggunakan scanf dengan penentu format %s untuk membaca username ke dalam array username
  5. Menggunakan printf untuk meminta input kepada pengguna dengan pesan "Enter your hobby:"
  6. Menggunakan scanf dengan penentu format %s untuk membaca hobby ke dalam array hobby
  7. Mencetak kedua string menggunakan printf dengan format persis seperti yang ditunjukkan di bawah ini

Input akan diberikan sebagai dua kata tunggal yang terpisah, tanpa spasi di dalam setiap kata.

Output programmu harus menampilkan hasil dalam format berikut:

Enter your username:
Enter your hobby:
Hello [username], your hobby is [hobby]!

Misalnya, jika pengguna memasukkan "Alice" sebagai username dan "reading" sebagai hobby, outputnya harus seperti berikut:

Enter your username:
Enter your hobby:
Hello Alice, your hobby is reading!

Tantangan ini menguji pemahamanmu tentang penggunaan scanf dengan penentu format %s untuk membaca input string, deklarasi array karakter dengan ukuran yang cukup, serta penggabungan input pengguna dengan output berformat menggunakan printf.

Coba sendiri

#include <stdio.h>

int main() {
    // TODO: Deklarasikan array karakter kamu di sini
    
    // TODO: Tulis kodemu di sini untuk menampilkan permintaan dan membaca input
    
    // TODO: Tampilkan pesan output akhir
    
    return 0;
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C online