[ ljiljanm @ 30.03.2007. 12:05 ] @
Hoću da imam mogućnost da mi u programu ispisuje string konstante:

Code:

#include <stdio.h>
main() {
  char str[10];
  int brred;
  printf("Unesite broj redova: ");
  scanf("%d", &brred);
  if(brred==1) str="red";
  else if(brred>1 && brred<5) str="reda";
  else str="redova"  /* Program ce pisati 1 red, 2 reda, 5 redova itd */
  printf("Trazili ste %d %s.", brred, str);

}



Međutim ovaj način ne funkcioniše. Prijavljuje mi grešku u redu str="red" i kaže lvalue required in function main.

Pokušao sam da definišem i const char ali ni to neće.

Šta je u stvari?
[ Mali Misha @ 30.03.2007. 12:35 ] @
Konkretno ovde možeš da koristiš pokazivač umesto polja (znači ne char str[10]; nego char *str;) i radiće.
Pored ovoga, fali ti i tačka-zarez u redu kod else.

Inače kada u C imaš jedan string i želiš da ga zapišeš u drugi string, operator = neće raditi posao. Preporučujem strcpy:

Code:
#include <stdio.h>
#include <string.h>

int main(void)
{
    char str[20];

    strcpy(str,"novi tekst.");
    printf("%s",str);

    return 0;
}
[ ljiljanm @ 30.03.2007. 13:06 ] @
Ispravio sam i kod mi izgleda ovako:

Code:


#include <stdio.h>
main() {
  char *str;
  int brred;
  printf("Unesite broj redova: ");
  scanf("%d", &brred);
  if(brred==1) *str="red";
  else if(brred>1 && brred<5) *str="reda";
  else *str="redova"  /* Program ce pisati 1 red, 2 reda, 5 redova itd */
  printf("Trazili ste %d %s.", brred, str);

}


Ali opet neće....
[ SuPeR_MaSteR @ 30.03.2007. 14:11 ] @
Ne trebas dereferencirati pokazivac.
ziPa:
*str <=> str[0], tako da si u tvom programu prvoj komponenti jednodimenzionalnog niza dodelio string (char*) sto je u C-u run-time error i zbog toga ne funkcionise.

Znaci ove tri linije:
Code:
*str = "red";
*str = "reda";
*str = "redova";


prepravi u:
Code:
str = "red";
str = "reda";
str = "redova";


samo ukloni operator *
[ Mali Misha @ 30.03.2007. 14:24 ] @
Citat:
ljiljanm: Ali opet neće....
Citat:
Mali Misha: Pored ovoga, fali ti i tačka-zarez u redu kod else.

I mrdaj te zvezdice, kao što ti čovek reče.
[ ljiljanm @ 02.04.2007. 13:48 ] @
Ljudi nisam bio tu pa se izvinjavam što nisam odgovorio na poruku. Zahvaljujem se svima. Problem je bio bezveze ali me je mučio. Trebao sam još koristiti i strcpy().

Hvala.