判断字符串是不是指定的IP类型,C++
时间: 2023-11-27 16:04:03 浏览: 73
可以使用正则表达式来判断一个字符串是否为指定的IP类型。下面是一个示例代码:
```c++
#include <iostream>
#include <regex>
using namespace std;
bool isIPv4(string str) {
regex pattern("^\\d{1,3}(\\.\\d{1,3}){3}$");
return regex_match(str, pattern);
}
bool isIPv6(string str) {
regex pattern("^[0-9a-fA-F]{1,4}(:[0-9a-fA-F]{1,4}){7}$");
return regex_match(str, pattern);
}
int main() {
string ip = "192.168.0.1";
if (isIPv4(ip)) {
cout << "IPv4 address" << endl;
} else if (isIPv6(ip)) {
cout << "IPv6 address" << endl;
} else {
cout << "Invalid IP address" << endl;
}
return 0;
}
```
该程序使用正则表达式来匹配IPv4和IPv6地址。`isIPv4`函数使用IPv4地址的正则表达式,`isIPv6`函数使用IPv6地址的正则表达式。如果字符串匹配成功,则返回`true`,否则返回`false`。在`main`函数中,我们输入一个IP地址并使用`if-else`语句来判断它是IPv4地址还是IPv6地址。
阅读全文