我对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
我希望有人可以帮助我
祝你好运
答案 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