Я пытаюсь сравнить массив символов с такой строкой:
const char *var1 = " ";
var1 = getenv("myEnvVar");
if(var1 == "dev")
{
// do stuff
}
Этот оператор if никогда не проверяется как истинный... когда я вывожу var1, это "dev" , я думал, может быть, он имеет какое-то отношение к нулевой завершаемой строке, но strlen "dev" и var1 равны... Я также подумал, что, возможно, var1 == "dev" сравнивал "dev" с адресом памяти var1 вместо значения. * var1 == "dev" приводит к ошибке.... пробовал много вещей, возможно, простое решение для saavy С++-разработчика (я havent кодировал С++ в looong время).
изменить: мы пробовали
if(strcmp(var1, "dev") == 0)
и
if(strncmp(var1, "dev", 3) == 0)
Спасибо
edit: после тестирования дома я просто предлагаю, чтобы мой сотрудник менял тип данных на строку. Я считаю, что он сравнивал массив char большого размера с строкой. Я собрал программу, которая выводит sizeof, strlen и т.д., Чтобы помочь нам в этом. Спасибо всем за помощь.