Địa chỉ IP (IPv4) là 4 số 0-255 cách nhau bởi dấu chấm. Kiểm tra: tách chuỗi theo '.', phải có đúng 4 đoạn, mỗi đoạn chỉ chứa chữ số, giá trị 0-255.
Thuật toán
START B1: Nhập địa chỉ IP B2: Tách thành 4 đoạn bằng dấu '.' B3: Kiểm tra mỗi đoạn: chỉ chứa số, giá trị 0-255 B4: Nếu tất cả hợp lệ → Valid IP B5: Ngược lại → Invalid IP END
Ví dụ
#include <iostream>
#include <vector>
#include <string>
using namespace std;
bool chkNumber(const string& str) {
return !str.empty() && (str.find_first_not_of("0123456789") == string::npos);
}
vector<string> split(const string& str, char delim) {
vector<string> list;
size_t i = 0, pos = str.find(delim);
while (pos != string::npos) {
list.push_back(str.substr(i, pos - i));
i = ++pos;
pos = str.find(delim, pos);
}
list.push_back(str.substr(i));
return list;
}
bool validateIP(string ip) {
vector<string> slist = split(ip, '.');
if (slist.size() != 4) return false;
for (string str : slist) {
if (!chkNumber(str) || stoi(str) < 0 || stoi(str) > 255)
return false;
}
return true;
}
int main() {
cout << "Enter the IP Address:: ";
string ip;
cin >> ip;
if (validateIP(ip))
cout << endl << "***It is a Valid IP Address***";
else
cout << endl << "***Invalid IP Address***";
return 0;
}
Kết quả
Enter the IP Address:: 10.10.10.2 ***It is a Valid IP Address***