C++;如何将字符指针数组转换为字符串数组? 在C++应用程序中,参数都存储在char *数组中,如: int main(int argc, char* argv[]) { ... }

C++;如何将字符指针数组转换为字符串数组? 在C++应用程序中,参数都存储在char *数组中,如: int main(int argc, char* argv[]) { ... },c++,arrays,string,char,C++,Arrays,String,Char,然而,许多人更喜欢字符串操作的便利性,但是每次都必须将每个char*转换为std::string是件很匆忙的事情。所以我的问题是,如何将char*[]转换为std::string[],这样就不必在程序运行时将它们单独转换?如果接受std::vector,则可以使用其范围构造函数 std::vector<std::string> args(argv, argv + argc); std::向量args(argv,argv+argc); 如果接受std::vector,则可以使用其范围

然而,许多人更喜欢字符串操作的便利性,但是每次都必须将每个char*转换为std::string是件很匆忙的事情。所以我的问题是,如何将char*[]转换为std::string[],这样就不必在程序运行时将它们单独转换?

如果接受
std::vector
,则可以使用其范围构造函数

std::vector<std::string> args(argv, argv + argc);
std::向量args(argv,argv+argc);

如果接受
std::vector
,则可以使用其范围构造函数

std::vector<std::string> args(argv, argv + argc);
std::向量args(argv,argv+argc);

您可以循环使用参数

int main(int argc, char* argv[]) {

   std::string *s = new std::string[argc];
    for (int i = 0; i < argc; ++i)
        s[i] = argv[i];

}
intmain(intargc,char*argv[]){
std::string*s=新的std::string[argc];
对于(int i=0;i
您可以循环使用参数

int main(int argc, char* argv[]) {

   std::string *s = new std::string[argc];
    for (int i = 0; i < argc; ++i)
        s[i] = argv[i];

}
intmain(intargc,char*argv[]){
std::string*s=新的std::string[argc];
对于(int i=0;i
阅读关于循环的章节。阅读关于循环的章节。这将是一个
std::vector args(…)
@woolstar编辑。谢谢。那将是一个
std::vector args(…)
@woolstar编辑的。谢谢