Oppure

Loading
31/08/11 20:52
RENOOB
c'è una funzione che ad esempio converte "ciao" in "6369616F" ?


EDIT:

grazie comina8 :k:
ho risolto... però...
come faccio ad assegnarlo ad una variabile?
printf stampa a video soltanto.

EDIT:

ciò che cercavo era l'esadecimale, che l'ho confuso erroneamente con il binario.
Questa è la funzione che mi serviva:
char* bin(char name[])
 {
    int len = strlen( name );
	char buffer[10064]="";
	char *pbuffer = buffer;
	for( int i = 0; i < len ;i++ )
	{
		itoa (name[i],pbuffer,16);
		pbuffer +=2;
	};
	return buffer;
}

Grazie ancora comina8
Ultima modifica effettuata da RENOOB 01/09/11 9:29
aaa
31/08/11 21:33
comina8
Non penso, però puoi stampare la stringa in questo modo:

for(i=0; str[i]!='Non penso, però puoi stampare la stringa in questo modo:


for(i=0; str[i]!='{parsed_message}'; i++)
{
   printf("%d",str[i]);
}


Per stampare il codice ASCII in decimale, o altrimenti %X per stamparlo in esadecimale.

Se invece vuoi elaborare i caratteri come numeri li devi trattare come tali...'; i++) { printf("%d",str[i]); }


Per stampare il codice ASCII in decimale, o altrimenti %X per stamparlo in esadecimale.

Se invece vuoi elaborare i caratteri come numeri li devi trattare come tali...
aaa
31/08/11 22:34
Pitagora
c'è una funzione che ad esempio converte "ciao" in "6369616F" ?


EDIT:

grazie comina8 :k:
ho risolto... però...
come faccio ad assegnarlo ad una variabile?
printf stampa a video soltanto.


1- il titolo è errato;
2- la sezione è errata;
3- per poterlo assegnare ad una variabile devi per forza scrivere un algoritmo/trovare un classe.


EDIT:

potrei continuare...

4- "ciao" in "6369616F" non significa niente, bensì "ciao" in "BF9E0CAB", ha qualche chance...
Ultima modifica effettuata da Pitagora 01/09/11 7:29
aaa
01/09/11 18:18
lumo
char* bin(char name[])
 {
    int len = strlen( name );
        char buffer[10064]="";
        char *pbuffer = buffer;
        for( int i = 0; i < len ;i++ )
        {
                itoa (name[i],pbuffer,16);
                pbuffer +=2;
        };
        return buffer;
}

mi dispiace ma questo codice non può funzionare... per 2 motivi:
buffer viene creato quando esegui la funzione, e va out of scope in seguito. Questo vuol dire che non ritorni la stringa che hai appena ottenuto, ma della memoria spazzatura;
pbuffer+=2 non è proprio bello da vedere; se assumiamo che i caratteri passati siano nel range 'a'..'z' allora può andare, ma nel caso di caratteri che sono rappresentati con una singola cifra lascieresti uno spazio( un esempio è il newline, che in esadecimale è A ).
Inoltre, itoa() non è una funzione standard, quindi non puoi essere sicuro che vada su tutti i compilatori.
Una soluzione migliore sarebbe questa:
ideone.com/…
Una soluzione _veramente_ in C++ userebbe uno stringstream e la classe string, ma non mi pare il caso :)
aaa