アルゴリズムによるIPアドレスの無効化

有効なIPv4アドレスを指定し、このIPアドレスの無効化されたバージョンを返します。いわゆるIPアドレスの無効化は、実際には各「。」を「[。]」に置き換えています。

例1:

入力:アドレス= "1.1.1.1"

出力: "1 [。] 1 [。] 1 [。] 1"

例2:

入力:アドレス= "255.100.50.0"

出力: "255 [。] 100 [。] 50 [。] 0"

アルゴリズム1:文字列をトラバースし、「。」に置き換えます。

char* defangIPaddr(char* address)
{
    
    
	char* tmp = (char*)malloc(sizeof(char) * 25);//记得主函数中free
	int i = 0, j = 0;
	while (address[i] != '\0')
	{
    
    
		if (address[i] == '.')
		{
    
    
			tmp[j] = '[';
			tmp[j + 1] = '.';
			tmp[j + 2] = ']';
			j = j + 3;
		}
		else
		{
    
    
			tmp[j] = address[i];
			j++;
		}
		i++;
	}
	tmp[j] = '\0';
	return tmp;
}

アルゴリズム2:ライブラリ関数を使用し、sscanfを使用して各整数を取得してから、sprintfを使用して必要な文字列をフォーマットします

char * defangIPaddr(char * address)  

{
    
      

    int a, b, c, d;  

    char *str = (char *)malloc((strlen(address) + 7) * sizeof(char)); //记得主函数中free

    sscanf(address, "%d.%d.%d.%d", &a, &b, &c, &d);//获取每个数字  

    sprintf(str, "%d[.]%d[.]%d[.]%d" , a, b, c, d);//格式化成需要的字符串  

    return str;  
} 

おすすめ

転載: blog.csdn.net/Gunanhuai/article/details/109263230
おすすめ