C ++从char中删除子串

时间:2016-04-26 08:39:22

标签: c++ replace char substring

我对C ++很陌生,这就是为什么我需要一些帮助。

在Python中我会这样做:

myString = "test|arg"
myArg = myString.split("|")[0]

但现在我使用的是C ++,而且我有一个字符,想要删除一个特殊部分。

#include "stdafx.h"
#include <iostream>
#include <boost/algorithm/string.hpp>

bool isPartOf(const std::string& word, const std::string& sentence) {
    return sentence.find(word) != std::string::npos;
}
int _tmain(int argc, _TCHAR* argv[])
{
        char* myChar= "test|me";
        if (isPartOf("|me", myChar)) {
            std::string sStr(myChar);
            boost::replace_all(sStr, "|me", "");
            std::copy(sStr.begin(), sStr.end(), myChar);
            myChar[sStr.size()] = '\0';
            printf(myChar);
            system("pause>nul");
        }

}

这是我当前的代码,但是我收到了这个错误:

  

错误1错误C4996:&#39; std :: _ Copy_impl&#39;:带参数&gt;的函数调用可能不安全 - 此调用依赖于调用者来检查传递的值&gt;是否正确。要禁用此警告,请使用-D_SCL_SECURE_NO_WARNINGS。请参阅&gt;文档,了解如何使用Visual C ++&#39; Checked Iterators&#39; c:\ program files&gt;(x86)\ vc \ include \ xutility 2132 1 ConsoleApplication2

我希望有人可以帮助我

祝你好运

1 个答案:

答案 0 :(得分:2)

C ++相当于你的Python程序:

#include <string>
#include <iostream>

int main(void) {
  std::string myString = "test|me";
  std::string myArg = myString.substr(0, myString.find('|'));
  std::cout << myArg << std::endl;
}

<强>输出

test