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 mendapatkan 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 begitu menemukan karakter spasi putih (spasi, tab, atau baris baru). Artinya, jika pengguna mengetik "Hello World", scanf hanya akan menangkap "Hello" dan membiarkan "World" di buffer input.

Hal 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 kerentanan keamanan. Pastikan array karakter-mu selalu cukup besar untuk 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 terpisah, tanpa spasi di dalam setiap kata.

Output harus menampilkan hasil dengan 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 yang tepat dengan ukuran memadai, serta penggabungan input pengguna dengan output berformat menggunakan printf.

Coba sendiri

#include <stdio.h>

int main() {
    // TODO: Deklarasikan array karakter milikmu di sini
    
    // TODO: Tulis kodemu di sini untuk meminta dan membaca input
    
    // TODO: Cetak 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