ciao a tutti, sto scrivendo un programma relativamente semplice, che mi sta creando un po' di confusione in testa, potete dirmi perfavore cosa c'è che non va?
codice:
#include<stdio.h>
#include<ctype.h>
#include<string.h>
int read(const char *word);
int main(void)
{
         /* da morse[1] a morse[26] lettere, da morse[27] a morse[36] numeri,
             ultimo è lo spazio */
	char morse[38][5]={"  ",".-","-...","-.-.","-..",".","..-.","--.","....","..",
						".--","-.-",".-..","--","-.","---",".--.","--.-",".-.",
						"...","-","..-","...-",".--","-..-","-.--","--..","----",
						".----","..--","...--","....-",".....","-....","--...",
						"--..","----."," "};
	char word[100];
	int i[100];
	int n;
	gets(word);
	while(word[n]!='\0'){            //assegna "j(nella funzione)" a i[n]
		i[n]=read(word[n]);
		n++;
	}
	for(n=0;i[n]!='\0';n++){             //determina i caratteri tramite ASCII e li mette nella 
		if(i[n]>=65&&i[n]<=90){     //posizione giusta rispetto al vettore morse
			i[n]-=64;
		}
		if(i[n]>=97&&i[n]<=122){
			i[n]-=96;
		}
		if(i[n]>=48&&i[n]<=57){
			i[n]-=21;
                        continue;
		}
		if(i[n]==32){
			i[n]=37;
		}
		if(word[n]=='\0'){
			i[n]=0;
		}
	}
	for(n=0;i[n]!='\0';n++){             //scrive il morse
		printf("%s ",morse[i[n]]);
	}
	for(n=0;i[n]!='\0';n++){             //semplicemente per controllo di i
		printf("%d ", i[n]);
	}
	return 0;
}
int read(const char *word)               //assegna i singoli caratteri di word a j
{
	int j;
		j=(char)word;
	return j;
}
il problema viene quando immetto i numeri, ad esempio il numero 1 mi scrive sia morse[28] che morse[29], però nel for di controllo mi scrive solo 28, e con il numero 3 succede di peggio: mi scrive tutta la sfilza fino all'8!
ecco l'output con 3:
codice:
3
...--....-.....-....--...--.. 30
--------------------------------
Process exited with return value 0
Press any key to continue . . .
non so neanche a cosa sia dovuto perchè teoricamente legge le cifre immagazzinandole come char, cioè identicamente a come avviene con le lettere con le quali però funziona a perfezione!! qualcuno può aiutarmi perfavore?
grazie in anticipo