[ PETAR1122 @ 03.01.2012. 21:23 ] @
Pozdrav,poceo sam da ucim C i naisao sam na problem:

Code:

#include<stdio.h>

int main(){

char str[5];
int i;

for (i=0;i<5;i++){
printf("str[%d]=",i);
scanf("%c",&str[i]);
}

return 0;
}


Nizovi karaktera u c-u predstavljaju string,ja hocu da unesem str preko for naredbe (svaki element niza posebno)...
Medjutim ovaj kod ne funkcionise dobro.Gde sam pogresio?Zbunjuje me i to sto program radi kako treba kada unosim niz celobrojnih vrednosti.
[ X Files @ 03.01.2012. 21:44 ] @
Ako unosis niz karaktera, a to kasnije tretiras kao sring, ne zaboravi da rezervises jos jedan element za terminator stringa - nulu. U ispravljenom kodu, ja sam pri deklaraciji/definiciji ceo niz napunio nulama, a ti ne moras tako. Mozes samo poslednjem, sestom elementu dodeliti nulu, na kraju unosa.

Takodje, obrati paznju na fflush(stdin);. Pretraži forum o ovome.

Code:

#include <stdio.h>
int main()
{
    char str[6]={0};
    int i;

    for (i=0;i<5;i++)
    {
        printf("str[%d]=",i);
        scanf("%c", &str[i]);
        fflush(stdin);
    }

    printf("STRING=%s\n",str);
    return 0;
}

[ 4co_R @ 03.01.2012. 22:43 ] @
Koja je razlika u c-u kada unosim vrednosti niza int a [5] i niza char a [5] pomocu for naredbe,zasto kada ne koristim fflush program u slucaju char niza ne radi dobro,a u slucaju int niza radi?