Invalidación algorítmica de la dirección IP

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;  
} 

Supongo que te gusta

Origin blog.csdn.net/Gunanhuai/article/details/109263230
Recomendado
Clasificación