А как это вы строковую переменную при помощи == сравниваете? Честно говоря, плюсы я уже подзабыл, но в сях такое можно делать лишь при помощи strcmp или memcmp. А argv - обычный массив указателей.
Дополню, что strcmp (stricmp - для сравнения без учёта регистра) возвращает 0 в случае равенства строк. Значение меньшее 0, если первая строка меньше второй и больше, если первая больше. Т.е. Если по логике надо сравнить
a == (!= < > <= >=) b
то вместо этого пишут
strcmp(a,b) == (!= < > <= >=) 0
Либо использовать std::string:
if( std::string( argv[1] ) == std::string( "111" ) )
Но это лишнее, имхо.