Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

rad sa stringovima

[es] :: C/C++ programiranje :: C/C++ za početnike :: rad sa stringovima

[ Pregleda: 3425 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ljiljanm
ljiljanm
Bijeljina

Član broj: 122025
Poruke: 180
*.teol.net.



Profil

icon rad sa stringovima30.03.2007. u 12:05 - pre 184 meseci
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?
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
89.190.198.*

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: rad sa stringovima30.03.2007. u 12:35 - pre 184 meseci
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;
}

Ipak se ++uje.
 
Odgovor na temu

ljiljanm
ljiljanm
Bijeljina

Član broj: 122025
Poruke: 180
*.teol.net.



Profil

icon Re: rad sa stringovima30.03.2007. u 13:06 - pre 184 meseci
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....
 
Odgovor na temu

SuPeR_MaSteR
Marko Stamenković

Član broj: 88590
Poruke: 115
*.inffo.net.



Profil

icon Re: rad sa stringovima30.03.2007. u 14:11 - pre 184 meseci
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 *
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
89.190.198.*

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: rad sa stringovima30.03.2007. u 14:24 - pre 184 meseci
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.
Ipak se ++uje.
 
Odgovor na temu

ljiljanm
ljiljanm
Bijeljina

Član broj: 122025
Poruke: 180
*.teol.net.



Profil

icon Re: rad sa stringovima02.04.2007. u 13:48 - pre 184 meseci
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.
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: rad sa stringovima

[ Pregleda: 3425 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.