Newsgroup: it.comp.lang.c
Titolo: Semplice programma che converte carattere con numero

Salve a tutti, volevo scrivere un'applicazione che prende una stringa
e converte ogni singolo carattere con il numero corrispondente in
questo modo:
1 = a
2 = b
3 = c
.
.
.
e restituisce la stringa di numeri rappresentanti la parola
digitata...
Mi dareste qualche suggerimento nel scrivere il codice???
Grazie

   20:01:01 up  8:36,  3 users,  load average: 0.25, 0.34, 0.35
ma cosa vuol dire -96???

 ma cosa vuol dire -96???
E' il codice ascii di 'a' diminuito di 1. Consiglio di sostituirlo col 
più portabile -'a'+1.
I caratteri sono codificati generalmente secondo il codice ascii (che 
trovi facilmente in rete) e ad ogni carattere corrisponde un numero. Dato 
che nel codice ascii tutte le lettere sono consecutive, basta che togli 
il valore del primo carattere (in questo caso la "a") e ottieni ciò che 
cerchi.
Saluti


ho provato a fare una cosa cosi... ma ancora non và bene cosa ne
dite...:
#include <stdio.h>
#include <string.h>
int main(){
	int *i;
	char stringa[];
	char stringa2[];
	printf("Digita stringa di caratteri: \n");
	scanf("%c", &stringa);
	i = 0;
	while(stringa){
		stringa2[i] = stringa[i] -'a'+1;
		i++;
		}
	printf("La conversioni in numeri è: %\n", stringa2);
return();
}

 return();
Per stampare stringhe devi usare %s. Il ciclo penso non finisca mai 
(stringa non risulta mai zero).
Comunque sia così non può funzionare: stai salvando il risultato della 
tua elaborazione (un numero da 1 a 26) in una stringa, tentando di 
stampare il risultato. Puoi farlo (il tipo char supporta al minimo i 
caratteri da 0 a 127, senza guardare i segni) ma devi stampare ogni 
singolo elemento della stringa come un numero, altrimenti viene un 
paciugo dato che i caratteri da 1 a 26 in codice ascii sono di controllo 
(o almeno la più parte!).


#include <string.h>


	i = 0;
	while(stringa =! '\n'){
		stringa2[i] = stringa[i] -'a'+1;
		i++;
		}
	printf("La conversioni in numeri è: %s\n", stringa2);
return();
}
Cioè come faccio a stampare ogni singolo elemento della stringa come
un numero???

 un numero???
GIYF
Pleg
PS: cmq, potrsti guardare qui
http://opengroup.org/onlinepubs/007908799/xsh/fprintf.html
(o in un milione di altri siti e libri) i formattatori della printf... 

yoghi87 ha scritto:

// Non testato:
#include <stdio.h>
main() {
	char *p;
	char s[1024];
	printf("Scrivi qualcosa...\n");
	fgets(s,sizeof(s)-1,stdin);
	for (p=s;*p;p++)
		if (*p>='1' && *p<='9')
			*p=*p-'1'+'a';	
	printf("%s\n",s);
}
// E.


ho provato a compilare questo ma inserisco caratteri e mi restituisce
caratteri:
#include <stdio.h>
main() {
        char *p;
        char s[1024];
        printf("Inserisci la stringa in caratteri: \n\n");
        fgets(s, sizeof(s)-1, stdin);
        for (p=s; *p; p++)
                if (*p >= '1' && *p <= '9')
                        *p= *p -'a'+1;
        printf("%s\n", s);
     system("PAUSE");
     return(0);
}

 caratteri:
Ah, scusa, tu vuoi che restituisca numeri... ho letto male. Allora prova 
questo (stavolta l'ho testato):
#include <stdio.h>
main() {
   int c;
   while((c=getchar())!=EOF) {
     if (isalpha(c))
       printf("%d ",tolower(c)-'a'+1);
   }
}