網際網路協議地址的去角符版本
簡介
本教程討論了查詢網際網路協議地址的去角符版本的問題。網際網路協議地址或 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 地址進行去角符,請將句點替換為 [.]。為了替換,我們使用了簡單的字串遍歷方法和正則表示式方法。
正則表示式是字串匹配工具,用於查詢字串中是否存在模式。它具有各種預定義函式。用一些例子演示了問題陳述。