BerBagI CeriTa daN Ilmu

tentang Komputer, review komik, film dan drama asia

Source code Program C yang Error

Ini hanyalah contoh program c yang sangat sederhana :

#include <stdio.h>

void main(){
char username[20];
char passw[20];

    printf("Login\n");
	printf("username: "); scanf("%s",username);
	printf("password: "); scanf("%s",passw);

    printf("user:%s pass:%s",username,passw);
}

Program ini mengambil masukan username dan password. Pada bagian deklarasi username dan passw hanya disiapkan variabel yang bisa menampung sebanyak 20 karakter. Apa yang terjadi bila masukan lebih dari 20 karakter? Silahkan dicoba deh. Dijamin eror !! :) Tentu saja! karakter input berlebihan, padahal alokasi tempatnya tidak cukup. Seperti gelas belimbing diberi air seember yah tumpah-tumpahlah.

Solusinya program harus mengecek panjang input yang diberikan, jika lebih dari 20 yah tolak saja. Berikut ini contoh solusinya :

If( strlen(username)>20 || strlen(passw)>20)
 Printf("username or password too long\n");

Oktober 26, 2008 - Ditulis oleh nirma | computer | , | & Komentar

& Komentar »

  1. hahaha… gaya nih si tukang testing program. mantab ^_^

    Komentar oleh nirma | Mei 27, 2009

  2. hmm… 20 or 19…?
    char username[20] –> contains maximum 20 characters
    scanf pake %s berarti ngambil karakter null
    sedangkan strlen ignores karakter null
    jadi kalo masukin username 20 karakter akan passed di validasi jumlah karakter, tapi error kemudian.. krn jumlah karter yang sebenarnya adalah 21 (including null character) [?] iya ngga yah? hehe… :P

    *ternyata kalo nulis ‘0′ jadi ngga keprint apa-apa yah hihi..*

    Komentar oleh notavailable | Mei 25, 2009

  3. hmm… 20 or 19…?
    char username[20] –> contains maximum 20 characters
    scanf pake %s berarti ngambil ”
    sedangkan strlen ignores ”
    jadi kalo masukin username 20 karakter akan passed di validasi jumlah karakter, tapi error kemudian.. krn jumlah karter yang sebenarnya adalah 21.. [?] iya ngga yah? hehe… :P

    Komentar oleh notavailable | Mei 25, 2009


Tinggalkan komentar