c++判断输入的字符串ip是否合法
时间: 2023-08-06 15:09:08 浏览: 141
可以使用C++的正则表达式库 `regex` 来判断输入的字符串是否为合法的 IP 地址。
以下是一个示例代码:
```c++
#include <regex>
#include <iostream>
using namespace std;
int main() {
// 要匹配的 IP 地址
string ip = "192.168.0.1";
// IP 地址的正则表达式
regex pattern(R"(^((25[0-5]|2[0-4]\d|[0-1]?\d?\d)\.){3}(25[0-5]|2[0-4]\d|[0-1]?\d?\d)$)");
// 判断是否匹配成功
if (regex_match(ip, pattern)) {
cout << "合法的 IP 地址" << endl;
} else {
cout << "非法的 IP 地址" << endl;
}
return 0;
}
```
正则表达式 `^((25[0-5]|2[0-4]\d|[0-1]?\d?\d)\.){3}(25[0-5]|2[0-4]\d|[0-1]?\d?\d)$` 匹配四个由数字组成的段,每段的数字范围是 0 到 255。其中:
- `(25[0-5]|2[0-4]\d|[0-1]?\d?\d)` 匹配 0 到 255 之间的数字,可以是三位数,两位数或一位数;
- `(25[0-5]|2[0-4]\d|[0-1]?\d?\d)\.` 匹配每个数字段后面的点号;
- `^` 和 `$` 分别表示匹配字符串的开头和结尾,确保整个字符串都是合法的 IP 地址。
如果输入的字符串不是合法的 IP 地址,那么 `regex_match` 函数返回 `false`。
阅读全文