[C++] instrukcja if

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<

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

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*.

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

#include

@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

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:

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