本文的目的是通过c++代码编程验证正确的IP (internet protocol)地址。IP地址是一个32位的点-小数表示法,分为从0到255的四个十进制数字段。此外,这些数字由点分隔连续。IP地址的作用是在网络中以独特的方式识别主机,以便在它们之间建立连接。
因此,为了验证从用户端输入的正确IP地址,以下算法简要介绍了如何具体实现代码序列以标识正确的IP地址;
START Step-1: 输入IP地址 Step-2: 将IP分割成四个段并存储在一个数组中 Step-3: 检查是否为数字 Step-4: 使用foreach循环遍历数组列表 Step-5: 检查其范围(小于256)和数据格式 Step-6: 调用Main()中的validate方法 END
因此,根据算法,以下c ++拟定了用于验证IP地址的方法,其中使用了几个基本函数分别确定数字形式,范围和分割输入数据;
#include <iostream> #include <vector> #include <string> using namespace std; // 检查给定的字符串是否是数字字符串 bool chkNumber(const string& str){ return !str.empty() && (str.find_first_not_of("[0123456789]") == std::string::npos); } // 函数使用给定的分隔符拆分字符串str vector<string> split(const string& str, char delim){ auto i = 0; vector<string> list; auto 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, str.length())); return list; } //函数验证IP地址 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; } //在C ++中验证IP地址 int main(){ cout<<"输入IP地址::"; string ip; cin>>ip; if (validateIP(ip)) cout <<endl<< "***它是一个有效的IP地址***"; else cout <<endl<< "***IP地址无效***"; return 0; }
在使用标准c++编辑器编译上述代码后,我们会作出以下输出,以检查输入数字10.10.10.2是否正确的IP地址
输出结果
输入IP地址:: 10.10.10.2 ***它是一个有效的IP地址***