Tengo un cadena donde faltan caraceteres Unos son totalmente desconocidos "*" y hay que hacerles fuerza bruta (Esta parte ya la tengo hecha)
Pero la misma cadena tiene algunos caraceters que son Probables "?" con ciertos caracteres posibles que no se alcanzan a ver ejemplos 8 y B. X, K y k, S y 5, Esta parte la manejo cada caracter "?" con su lista individual de caraceters posibles y no es la misma para cada simbolo "?"
Ejemplo:
Código:
sV***??c8NSs1X85ws9Er?z9FwtdJ
Cada caracter "*" puede ser uno de los 58 caraceteres del base58 Esta parte la manejo mas o menos asi
Código
do{ //CODIGO }while(increment_base58(string,aux));
La solucion anterior es general para cualquier numero de * en el string dado
Pero la parte de los "?" es variable, para este ejemplo vamos a decir que los los ? pueden ser alguno de los siguientes caraceteres respectivamente:
Código
const char *doubt_possibles[3] = {"ec","B28","XKk"};
Significa que el primer caracter "?" de Izquierda a Derecha puede ser e o c el segundo "?" puede ser B, 2 u 8 (Imagen muy distorcionada) y el ultimo Signo "?" podria ser "X, K o k"
Esta solucion esta hardcodeada de la siguiente manera:
Código
current_string[doubt_locations[0]] = doubt_possibles[0][contadores[0]]; current_string[doubt_locations[1]] = doubt_possibles[1][contadores[1]]; current_string[doubt_locations[2]] = doubt_possibles[2][contadores[2]]; //Otro Codigo do{ //CODIGO }while(increment_base58(current_string,aux)); } } }
El problema con lo anterior es que si me mandan otra cadena diferente o cambia la cantidad de caracteres tengo que editar la mitad del codigo actual.
Mas o menos tengo un leve idea de como hacerlo de forma general, cualquier numero de ? y cualquier longitud de posibles, pero me pregunto cual seria su forma de abordar este problema sin utilizar tanto for, quedando algo asi:
Código
do{ //Do para los "?" en lugar de tanto for.... do{ // Do para los "*" //CODIGO }while(increment_base58(current_string,aux)); }while(magic_function(current_string,aux2));
Es decir como codificarian "magic_function"
Código
bool magic_function(char *current_string,int aux2){ // Que hay aqui? }