如果你不想使用正则表达式,你可以手动解析字符串来校验IP地址的格式。下面是一个示例代码:
#include <iostream>
#include <string>
#include <sstream>
bool checkIPAddress(const std::string& ipAddress) {
std::istringstream iss(ipAddress);
std::string segment;
int count = 0;
while (std::getline(iss, segment, '.')) {
if (segment.empty() || segment.length() > 3)
return false;
for (char c : segment) {
if (!std::isdigit(c))
return false;
}
int num = std::stoi(segment);
if (num < 0 || num > 255)
return false;
count++;
}
return (count == 4);
}
int main() {
std::string ipAddress;
std::cout << "请输入IP地址:";
std::cin >> ipAddress;
if (checkIPAddress(ipAddress)) {
std::cout << "IP地址格式正确" << std::endl;
} else {
std::cout << "IP地址格式错误" << std::endl;
}
return 0;
}
该示例将输入的IP地址按照点号分隔开,并逐个判断每个子段是否符合要求。每个子段必须满足以下条件:
- 非空且长度不超过3
- 只包含数字字符
- 数字范围在0到255之间
如果所有子段都满足条件,并且共有4个子段,则认为IP地址格式正确。
请注意,这只是一个简单的示例,仅适用于校验IPv4地址的格式。如果需要支持更多类型的IP地址(如IPv6),你可能需要实现更复杂的校验逻辑。
内容由零声教学AI助手提供,问题来源于学员提问