Salve a tutti sto facendo un programma come da titolo, solo che nella seconda parte da Morse a italiano ho riscontrato un problema durante il passaggio del codice.
questo è il programma:
il problema è nel seguente pezzo:codice:#include <stdio.h> #include <string.h> char *toMorse(char c); char toIT(char *c); int main() { int i; char str[100]; printf("0 to Morse, 1 to IT\n"); scanf("%d",&i); while(getc(stdin)!='\n'); printf("Inserire una frase da codificare/decodificare:\n"); fgets(str,100,stdin); if(i==0) { for(i=0;str[i]!='\n';i++) printf("%s ",toMorse(toupper(str[i]))); } else if(i==1) { char *ptr; ptr = strtok(str," "); while(ptr!=NULL) { printf("%c",toIT(ptr)); ptr = strtok(NULL," "); } } else { printf("Scelta non valida!\n"); return 0; } printf("\n"); } char *toMorse(char c) { switch(c) { case ' ': return " "; break; case 'A': return ".-"; break; case 'B': return "-..."; break; case 'C': return "-.-."; break; case 'D': return "-.."; break; case 'E': return "."; break; case 'F': return "..-."; break; case 'G': return "--."; break; case 'H': return "...."; break; case 'I': return ".."; break; case 'J': return ".--"; break; case 'K': return "-.-"; break; case 'L': return ".-.."; break; case 'M': return "--"; break; case 'N': return "-."; break; case 'O': return "--"; break; case 'P': return ".--."; break; case 'Q': return "--.-"; break; case 'R': return ".-."; break; case 'S': return "..."; break; case 'T': return "-"; break; case 'U': return "..-"; break; case 'V': return "...-"; break; case 'W': return ".--"; break; case 'X': return "-..-"; break; case 'Y': return "-.--"; break; case 'Z': return "--.."; break; case '1': return ".----"; break; case '2': return "..--"; break; case '3': return "...--"; break; case '4': return "....-"; break; case '5': return "....."; break; case '6': return "-...."; break; case '7': return "--..."; break; case '8': return "--.."; break; case '9': return "----."; break; case '0': return "----"; break; } } char toIT(char *c) { if(c==" ") { return; } else if(c==" ") { return ' '; } else if(c==".-") { return 'a'; } else if(c=="-...") { return 'b'; } else if(c=="-.-.") { return 'c'; } else if(c=="-..") { return 'd'; } else if(c==".") { return 'e'; } else if(c=="..-.") { return 'f'; } else if(c=="--.") { return 'g'; } else if(c=="....") { return 'h'; } else if(c=="..") { return 'i'; } else if(c==".--") { return 'j'; } else if(c=="-.-") { return 'k'; } else if(c==".-..") { return 'l'; } else if(c=="--") { return 'm'; } else if(c=="-.") { return 'n'; } else if(c=="--") { return 'o'; } else if(c==".--.") { return 'p'; } else if(c=="--.-") { return 'q'; } else if(c==".-.") { return 'r'; } else if(c=="...") { return 's'; } else if(c=="-") { return 't'; } else if(c=="..-") { return 'u'; } else if(c=="...-") { return 'v'; } else if(c==".--") { return 'w'; } else if(c=="-..-") { return 'x'; } else if(c=="-.--") { return 'y'; } else if(c=="--..") { return 'z'; } else if(c==".----") { return '1'; } else if(c=="..--") { return '2'; } else if(c=="...--") { return '3'; } else if(c=="....-") { return '4'; } else if(c==".....") { return '5'; } else if(c=="-....") { return '6'; } else if(c=="--...") { return '7'; } else if(c=="--..") { return '8'; } else if(c=="----.") { return '9'; } else if(c=="----") { return '0'; } }se gli passo il puntatore nn funziona, se invece al posto di ptr provo a passargli il testo io con ad esempio ".-.." (L) funziona.da cosa dipende che non riesco a capire?graziecodice:printf("%c",toIT(ptr));

Rispondi quotando