C ++ Porównaj tablicę znaków z łańcuchem
Usiłuję porównać tablicę znaków z łańcuchem w taki sposób:
const char *var1 = " ";
var1 = getenv("myEnvVar");
if(var1 == "dev")
{
// do stuff
}
To stwierdzenie if nigdy nie sprawdza się jako prawdziwe ... gdy wypisuję var1, to jest to "dev", myślałem, że może ma to coś wspólnego z zakończonym null łańcuchem, ale strlen "dev" i var1 są równe ... I Myślałem też, że var1 == "dev" porównywał "dev" z lokacją pamięci var1 zamiast wartości. * var1 == "dev" powoduje błąd .... próbowałem wielu rzeczy, prawdopodobnie prostego rozwiązania dla programisty saavy c ++ (nie kodowałem c ++ w czasie dłuższym).
edytuj: próbowaliśmy
if(strcmp(var1, "dev") == 0)
i
if(strncmp(var1, "dev", 3) == 0)
Dzięki
edit: Po przetestowaniu w domu zasugeruję, że mój współpracownik zmieni typ danych na ciąg. Uważam, że porównywał tablicę znaków o dużym rozmiarze z ciągiem znaków. Zrobiłem program, który wypuszcza sizeof, strlen, itp., Aby pomóc nam przez to przejść. Dziękujemy wszystkim za pomoc.