[ Intex @ 28.07.2011. 16:14 ] @
pri pokretanju programa se desava nesto sto ne bi trebalo. pogledajte sliku:

http://www.imageupload.org/get...ee38035be92f2689a7cfa148b33d5b
http://www.imageupload.org/?d=75CE6F731
[ Mihajlo Cvetanović @ 28.07.2011. 16:51 ] @
U scanf funkciji moraš da daš pointer na početak bafera u koji će scanf funkcija da upiše učitani tekst. Početak bafera je &A[0], a ono što si ti stavio (&A[DIM]) je kraj bafera.
[ staticInt @ 28.07.2011. 16:54 ] @
Samo stavis scanf("%s", A);

Edit: Ah sad vidim da me je Mihajlo pretekao i dao lepo objasnjenje :)
[ X Files @ 28.07.2011. 17:00 ] @
Pretekao bi i mene, da nisam prethodno osvežio stranicu. Imao sam predosećaj da je "tu negde", i bio je ti pre "2s".

Elem,
@Intex
Slike slobodno uploaduj na ES. Tako imamo bolji integritet pitanja i odgovora.



[ Intex @ 29.07.2011. 17:48 ] @
Hvala ljudi, pomoglo je. Stavih ovaj manji primer da izdvojim problem, da se ne jurimo po dugačkom kodu. :)
A našao sam u nekim skriptama, knjigama itd. da se koristi nešto kao '\0' za kraj stringa. Da li se taj znak automatski unosi kad se pritisne enter? Treba li da računam i na taj znak kada definišem dimenziju stringa?

Citat:
X Files:
@Intex
Slike slobodno uploaduj na ES. Tako imamo bolji integritet pitanja i odgovora.

ok, imaću to na umu. :)
[ the_tosic @ 29.07.2011. 17:56 ] @
Potrebno je i njega da racunas. Ako citas string sa scanf("%s", s); bice i /0 ucitan.
[ X Files @ 29.07.2011. 18:09 ] @
'\0' je takozvani terminator niza karaktera, tj, to je znak koji govori gde je kraj stringa.

ENTER ce proizvesti NULU na kraju. Treba i nju uracunati u velicinu niza.

Inace, odgovor na ovo pitanje mozes i sam dobiti ako napravis neki TEST primer tipa:

Code:

#include <stdio.h>
#include <stdlib.h>

#define DUZINA_STRINGA 20
int main()
{
    int i;
    char niz[DUZINA_STRINGA];
    printf("Unesite string:");
    scanf("%s", niz);
    printf("Uneli ste: %s\n\n");
    printf("SADA CEMO DA ODVOJIMO SLOVO PO SLOVO SVAKOG ELEMENTA:\n");
    for (i=0; niz[i] != '\0'; i++)
        printf("niz[%d]: ASCII znak: %c, ASCII broj: %d\n", i, niz[i], niz[i]);


    printf("SADA CEMO DA ISPISEMO POSLEDNJI ELEMENT (TERMINATOR STRINGA):\n");
    printf("niz[%d]: ASCII znak: %c, ASCII broj: %d\n", i, niz[i], niz[i]);

    return 0;
}