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