我正在努力学习C++,并且通过这样做来学习......
这个代码的最终结果是它输出char* argv[2]一个只接受字符串作为输入的函数,它将输出一个改变的字符串.
我怎样才能转换char* argv[2]成字符串?
由于某种原因,我尝试过的所有内容都会导致命令提示符崩溃.
int main(int argc, char* argv[])
{
std::string com2 = argv[2];
char* com1[4];
com1[1] = "-f";
com1[2] = "--file";
com1[3] = "-t";
com1[4] = "--text";
if (strcmp(argv[1], com1[1]) == 0) {
cout << com2;
}
}
Run Code Online (Sandbox Code Playgroud)
数组索引从0to 运行N - 1,其中N是数组中元素的数量.因此4是无效索引,并导致未定义的行为.
通过argc在访问元素之前检查其值,确保为程序提供了正确数量的参数argv.