Darle una dirección IPv4 válida y devolver la versión invalidada de esta dirección IP. La llamada invalidación de direcciones IP en realidad está reemplazando cada "." Con "[.]".
Ejemplo 1:
Entrada: dirección = "1.1.1.1"
Resultado: "1 [.] 1 [.] 1 [.] 1"
Ejemplo 2:
Entrada: dirección = "255.100.50.0"
Salida: "255 [.] 100 [.] 50 [.] 0"
Algoritmo 1: atraviesa la cadena y reemplázala con '.'
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;
}
Algoritmo 2: use las funciones de la biblioteca, use sscanf para obtener cada número entero y luego use sprintf para formatear la cadena requerida
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;
}