[C++] instrukcja if


(M8 R Ias0ym) #1

Jak przenieść zmienną char reje poza instrukcje if ??

if (name=="aaa")

   {

   char reje[]="jeden"

   }

else if(name=="bbb") 

   {

   char reje[]="dwa"

   }

else

   {

   char reje[]="blad""

   }

cout<

(klemensior15) #2

Nie tworzyć jej w ifie a poza, a tylko przypisywać w if'ie?


(Razi) #3

Stringów w postaci char* nie porównuje się operatorem ==, bo wtedy porównywane są wskaźniki. Stringi w char* porównuje się funkcją strcmp(str1, str2) z biblioteki string.h / cstring.

A tą tablicę zadeklaruj prędzej jako char*.


(Przemekbaranowski) #4

zapisywanie danych do tablicy char* też powinno wyglądać inaczej. zrób coś takiego:

#include

(Witos) #5

@Przebar: to błędne rozwiązanie, wskaźnik char * reje jest tu nie zainicjowany, wiec strcpy pomaże po pamięci. Wersja z strcpy będzie dobra jeżeli użyć tablicy char reje[N], lub wskaźnik reje ustawi się na zaallokowany obszar pamięci (np. w wyniku użycia funkcji malloc)

#include

(Przemekbaranowski) #6

zgadza się. mój błąd - zapomniałem. ale w tym wypadku i tak bezpieczniej będzie użyć malloc() niż char reje[N]; :wink:


(Sawyer47) #7

Skoro to ma być C++ to można użyć std::string i po kłopocie.