互联网协议地址的去重版本
简介
本教程处理查找互联网协议地址的去重版本的问题。互联网协议地址或 IP 地址是连接到互联网或使用互联网的设备的单独数字地址。它对于每个连接到互联网的设备都是唯一的。它由用句点 (dot) 分隔的数字组成。例如 191.0.1.2。
互联网协议的去重版本意味着用其他字符替换句点 (dot.),这样它就不会被视为有效的 IP 地址。为了简化 Internet 协议地址,我们使用 [.] 代替句点 (dot .)。简化 Internet 协议地址是为了可以安全地以文本形式或某些代码使用,而不会违反编码规则。
在本教程中,通过获取有效的 IP 地址并将点 (.) 替换为 [],实现两种简化 IP 地址的方法。
通过遍历字符串将点 (.) 替换为 []。
使用正则表达式 - 正则表达式或 regex 是一种字符串匹配工具,用于将字符串与某些字符序列进行匹配。
演示 1
输入 = 字符串 = "192.168.1.1" 输出 = 192[.]168[.]1[.]1
解释
以字符串形式表示的有效 Internet 协议地址为 192.168.1.1。分隔符/句点(点 .)被替换为 [.]。去角后的 IP 地址为 192[.]168[.]1[.]1
演示 2
输入 = 字符串 = "191.0.1.2" 输出 = 191[.]0[.]1[.]2
解释
以字符串形式表示的有效 Internet 协议地址为 191.0.1.2,句点(点 .)被替换为 [.]。被解除锁定的 IP 地址是 191[.]0[.]1[.]2
C++ 库函数
regex_replace() − 它是正则表达式的预定义函数。它在 <regex> 头文件中定义。它用替换表达式替换匹配的模式。它需要 3 个参数:要转换的字符串、正则模式和替换字符串。
语法
regex_replace(str, pattern, replacement);
算法
使用有效的 IP 地址初始化字符串。
使用"for"循环遍历字符串的字符。
使用 if-else 条件将 (.) 替换为 [.]
重复步骤 3,直到循环到达字符串末尾。
打印去尾的 IP 地址。
示例 1
通过遍历字符串,使用 C++ 实现本教程中的问题陈述。该字符串是有效的 Internet 协议地址。使用循环遍历字符串,并使用 if-else 条件将字符串分隔符替换为 [.]
#include <iostream> #include <string> using namespace std; //用户定义函数查找去尾 IP 地址 string defangIPaddress(const string& str) { string defangAddress; // 循环迭代字符串 for (char ch : str){ //条件以识别字符串中的 . if (ch == '.') { defangAddress += "[.]"; } else { defangAddress += ch; } } //返回去角后的字符串 return defangAddress; } //代码控制器 int main() { string validIP = "192.168.1.1"; //调用函数 string defanged_address = defangIPaddress(validIP); cout << "原始 IP 地址:" << validIP << endl; cout << "去角后的 IP 地址:" << defanged_address << endl; return 0; }
输出
原始 IP 地址:192.168.1.1 去掉 IP 地址:192[.]168[.]1[.]1
示例 2
使用正则表达式强大的字符串匹配概念,用 C++ 实现了本教程的问题陈述。它用于匹配字符串中的某些模式。它很容易使用。
#include <iostream> #include <regex> #include <string> using namespace std; // 去除 Internet 协议地址的函数 string defangIPaddress(const string& str) { // 定义正则表达式 stringPattern 以匹配句点(点) regex stringPattern("\."); // 将替换字符串定义为"[.]" string replace = "[.]"; // 使用 regex_replace 将匹配的句点替换为"[.]" string defangedAddress = regex_replace(str, stringPattern, replace); return defangedAddress; } //代码控制器 int main(){ // 有效 IP 地址 string validAddress = "192.168.1.1"; // 调用函数 string defanged_address = defangIPaddress(validAddress); cout << "原始 IP 地址:" << validAddress << endl; cout << "去掉 IP 地址:" << defanged_address << endl; return 0; }
输出
原始 IP 地址:192.168.1.1 去掉 IP 地址:192[.]168[.]1[.]1
结论
本教程到此结束。在本教程中,我们开发了从有效 IP 地址中查找去掉 IP 地址的方法。要去掉 IP 地址的句点,请用 [.] 替换。为了进行替换,我们使用了一种简单的字符串遍历方法和正则表达式方法。
正则表达式是用于查找字符串中是否存在模式的字符串匹配工具。它具有各种预定义函数。通过一些示例演示了问题陈述。