[c] krótki kod - przypisywanie do stringa

kawafis44
Użytkownik
Użytkownik
Posty: 474
Rejestracja: 22 paź 2007, o 20:55
Płeć: Mężczyzna
Lokalizacja: Gliwice
Podziękował: 416 razy
Pomógł: 2 razy

[c] krótki kod - przypisywanie do stringa

Post autor: kawafis44 »

Kod: Zaznacz cały

#include <stdio.h>

int main(int argc, char *argv[])
{
  char nazwa[20];
  nazwa = "Nazwa";
  printf("Nazwa: ",nazwa);
  return 0;
}
co jest źle ?

interesuje mnie w jaki sposób poprawnie zmienia się wartość tablicy znaków (stringa), a nie deklaracja stringa.
nie wiem jak zrobić to co chcę czyli:
1.mam zadeklarowaną pustą tablicę znaków o rozmiarze 20
2.chcę do tej tablicy dopasować wartość będącą np. tekstem o długości pięciu znaków (nie w ramach deklaracji)
pozdro!
Ostatnio zmieniony 31 sty 2008, o 22:33 przez kawafis44, łącznie zmieniany 2 razy.
Awatar użytkownika
kadiii
Użytkownik
Użytkownik
Posty: 642
Rejestracja: 20 gru 2005, o 21:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Pomógł: 130 razy

[c] krótki kod - przypisywanie do stringa

Post autor: kadiii »

Musisz uzyć funkcji strcpy

Kod: Zaznacz cały

strcpy(nazwa,"NAZWA");
i dołączasz bibliotekę string.h
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

[c] krótki kod - przypisywanie do stringa

Post autor: soku11 »

Albo przypisac odrazu dana nazwe, tj:

Kod: Zaznacz cały

char *nazwa={"Nazwa"}
POZDRO
smiechowiec
Użytkownik
Użytkownik
Posty: 374
Rejestracja: 21 cze 2007, o 11:28
Płeć: Mężczyzna
Lokalizacja: Łostowice
Pomógł: 146 razy

[c] krótki kod - przypisywanie do stringa

Post autor: smiechowiec »

Kod: Zaznacz cały

char *nazwa={"Nazwa"} 
Niestety po takim przypisaniu można się nieźle zdziwić co do zawartości wskazywanej przez zmienną nazwa
Czasem mogą przydarzyć się krzaki, a może i jakiś grubszy błąd, nad którym niewinny programista spędzi kilka dni wpatrując się w niewinny kod
Wynika to z faktu, że stała "Nazwa" nie należy do obszaru objętego ochroną, tzn nie została zadeklarowana jako obszar zmiennej ani nie dokonano dla niej alokacji pamięci.
Zupełnie bezpieczna jest natomiast deklaracja

Kod: Zaznacz cały

char nazwa[] = "Nazwa"; 
neecos
Użytkownik
Użytkownik
Posty: 48
Rejestracja: 5 gru 2007, o 12:29
Płeć: Mężczyzna
Lokalizacja: Toruń
Podziękował: 12 razy
Pomógł: 3 razy

[c] krótki kod - przypisywanie do stringa

Post autor: neecos »

Zawsze mozesz przekopiowac po znaku :p


int main(int argc, char *argv[])
{

char nazwa[20];
char tekst[];
int i=0;
while(tekst){
nazwa=tekst;
i++;}
cout
cozmo
Użytkownik
Użytkownik
Posty: 15
Rejestracja: 4 sty 2008, o 19:09
Płeć: Mężczyzna
Lokalizacja: Milanówek
Podziękował: 1 raz
Pomógł: 3 razy

[c] krótki kod - przypisywanie do stringa

Post autor: cozmo »

neecos pisze:Zawsze mozesz przekopiowac po znaku :p


int main(int argc, char *argv[])
{

char nazwa[20];
char tekst[];
int i=0;
while(tekst){
nazwa=tekst;
i++;}
cout
ODPOWIEDZ