CStoll schrieb:
{
char* ende = strchr(start,' ');
if(ende!=NULL) *ende='\0';
...
start = ende+1;
}
while(ende!=NULL);
(ungetestet)
Ja das merkt man. ende wird außerhalb des Sichtbarkeitsbereichs verwendet.
struct {char *morse[37],alph[37]; } codes = {
{".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--..",".----","..---","...--","....-",".....","-....","--...","---..","----.","-----"," "},
{'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9','0',' '}};
int main()
{
char z[100];
while( fgets(z,100,stdin) && *z!='\n' )
{
char x[100],*p=z; int n=0,i;
while( i=37,1==sscanf(p+=n,"%s%n",x,&n) )
while( i-- )
if( !strcmp(x,codes.morse[i]) ) printf("\n%c",codes.alph[i]);
}
return 0;
}