为什么下面程序中判断参数的部分总是false?

这是一段简单切换java版本的程序,关于环境变量的问题不用管,只是判断参数的部分总是false,我试过输出argv[i],和想要的参数一模一样,但判断就是false,代码如下:
#include #include #include using namespace std;int main(int argc, char *argv[]) { bool flag = 0; string cmd; for (int i = 1; i <= argc - 1; i++) { if (flag == 1) { if (argv[i - 1] == "-v") { cmd = "setx /m JAVA_HOME \"%JAVA_HOME_"; cmd.append(argv[i]).append("%\""); system(cmd.c_str()); } } else { if (argv[i] == "-h" || argv[i] == "--help") { printf("type -h or --help to show this page"); printf("type -c to see current java verson"); printf("type -v to change the java version to "); } else if (argv[i] == "-c") { system("echo %JAVA_HOME%"); } } } return 0;}
可能代码会错版,我回来再贴张图。求大神指教!!!

if (argv[i] == "-h" || argv[i] == "--help")
->
if (strcmp(argv[i] , "-h") == 0 || strcmp(argv[i] , "--help") == 0)