互联网协议地址的去角符版本
简介
本教程讨论了查找互联网协议地址的去角符版本的问题。互联网协议地址或 IP 地址是连接到或使用互联网的设备的唯一数字地址。每个连接互联网的设备的 IP 地址都是唯一的。它由用句点(点)分隔的数字组成。例如 191.0.1.2。
互联网协议的去角符版本是指用其他字符替换句点(点),以使其不被视为有效的 IP 地址。为了对互联网协议地址进行去角符,我们使用 [.] 代替句点(点)。互联网协议地址被去角符,以便可以安全地以文本形式或某些代码使用,而不会违反编码规则。
在本教程中,我们将通过获取有效的 IP 地址并将其中的点(.)替换为 [] 来实现两种去角符 IP 地址的方法。
通过遍历字符串将点(.)替换为 []。
使用正则表达式 - 正则表达式或 regex 是一种字符串匹配工具,用于将字符串与某些字符序列进行匹配。
演示 1
Input = String = "192.168.1.1" Output = 192[.]168[.]1[.]1
说明
字符串形式的有效互联网协议地址为 192.168.1.1。分隔符/句点(点)被替换为 [.]。去角符后的 IP 地址为 192[.]168[.]1[.]1
演示 2
Input = String = "191.0.1.2" Output = 191[.]0[.]1[.]2
说明
字符串形式的有效互联网协议地址为 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++ 中的问题陈述。该字符串是有效的互联网协议地址。使用循环遍历字符串,并使用 if-else 条件将字符串分隔符替换为 [.]
#include <iostream> #include <string> using namespace std; //User-defined function to find the defanged IP address string defangIPaddress(const string& str) { string defangAddress; // loop to iterate the string for (char ch : str){ //condition to identify the . in the string if (ch == '.') { defangAddress += "[.]"; } else { defangAddress += ch; } } //returning the defanged string return defangAddress; } //code controller int main() { string validIP = "192.168.1.1"; //calling function string defanged_address = defangIPaddress(validIP); cout << "Original IP Address: " << validIP << endl; cout << "Defanged IP Address: " << defanged_address << endl; return 0; }
输出
Original IP Address: 192.168.1.1 Defanged IP Address: 192[.]168[.]1[.]1
示例 2
使用强大的正则表达式字符串匹配概念在 C++ 中实现了本教程的问题陈述。它用于匹配字符串中的某些模式。它易于使用。
#include <iostream> #include <regex> #include <string> using namespace std; //Function for defanging the Internet Protocol Address string defangIPaddress(const string& str) { // Define the regular expression stringPattern to match periods (dots) regex stringPattern("\."); // Define the replace string as "[.]" string replace = "[.]"; // Use regex_replace to replace the matched periods with "[.]" string defangedAddress = regex_replace(str, stringPattern, replace); return defangedAddress; } //code controller int main(){ //Valid IP address string validAddress = "192.168.1.1"; //calling function string defanged_address = defangIPaddress(validAddress); cout << "Original IP Address: " << validAddress << endl; cout << "Defanged IP Address: " << defanged_address << endl; return 0; }
输出
Original IP Address: 192.168.1.1 Defanged IP Address: 192[.]168[.]1[.]1
结论
我们已经完成了本教程。在本教程中,我们开发了从有效 IP 地址查找去角符 IP 地址的方法。要对 IP 地址进行去角符,请将句点替换为 [.]。为了替换,我们使用了简单的字符串遍历方法和正则表达式方法。
正则表达式是字符串匹配工具,用于查找字符串中是否存在模式。它具有各种预定义函数。用一些例子演示了问题陈述。