我是C ++的新手,我想尝试一下C ++。通常我来自Java / PHP。
我有一个类似的字符串;
std::string location = "file:///C:/Program Files (x86)/Demo/";
或
std::string location = "http://www.example.com/site.php";
我如何检查:
location
域www.example.com
或example1.com
http://
或https://
在Java或PHP中我会采用正则表达式。但根本不知道如何从C ++开始。
我的第一件事就是检查http://
:
std::string location = "";
if (strncmp(location.c_str(), "http://", 7)) {
/* yepp */
} else {
/* nope */
}
但这不起作用。
我希望你能帮助我。
答案 0 :(得分:2)
我会以三种方式攻击你的问题,从大多数到最不具体。
1 - 您可以选择在Stack Overflow上提供的建议,而不是重新发明轮子:
Easy way to parse a url in C++ cross platform?
2 - C ++确实完全支持Regexp。您可以参考以下内容作为开头:
http://www.cplusplus.com/reference/regex/regex_search/
3 - 通常,不建议使用str风格的C风格函数来比较字符串。 std :: string类有几个你最好使用的子字符串搜索函数。其中最基本的是:
http://www.cplusplus.com/reference/string/string/find/
希望这可以帮助您走上正轨,无论您选择如何继续。