首页 > 解决方案 > 从参数中剪切特定位置的向量字符串

问题描述

我们刚从 C++ 开始,我遇到了一个家庭作业问题。希望有人可以在这里给我具体的帮助..

以下情况:我们正在通过程序的参数解析值,并且第一个参数“argv [0]”的定义包含众所周知的程序名称。但我只需要argv[0] 中的“printParametersToFile.exe”(C:\Users\Alex\Documents\visualstudio-workspace\OOP\OOP19_01\Debug\printParametersToFile.exe) ......这是我目前的尝试:

int main(int argc, char *argv[]) {
std::vector<std::string> myArray; 
std::vector<std::string>::iterator it;
std::string searchKey = ".exe";
std::string programmName;

// populate the Array
for (int i = 0; i < argc; ++i) 
    myArray.push_back(argv[i]);

for (int i = 0; i < argc; ++i)
{
    if (i == 0)
    {       
        ///z.B.: C:\Users\Alex\Documents\visualstudio-workspace\OOP\OOP19_01\Debug\printParametersToFile.exe
        std::cout << "Arguments = " << argc-1 << "\n";  
        it = std::find(myArray.begin(), myArray.end(), searchKey);

        programmName = ... 

        std::cout << "Programmname:\t" << programmName << std::endl;    /// Alternatively, the endl manipulator can also be used to break lines.

    }
    else
        std::cout << "Argument" << i << " :\t" << myArray[i] << std::endl;
}

不幸的是,我的迭代器变量始终为 NULL,这里有人对我有一个好的解决方案吗?

先感谢您!

标签: c++stringvectorvisual-studio-2017command-line-arguments

解决方案


推荐阅读