Go to diff to previous submission
#include <stdio.h> #include <strings.h> #include <string.h> char* fromMorse[] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..", "..--", ".-.-", "---.", "----"}; char toMorse[] = {'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', '_', ',', '.', '?'}; void s2m(char s, char *m); void m2s(char *m, int l, char *s); int main() { while (1) { int lengths[2000]; int lengthcounter = 0; char chars[5000]; bzero(chars, 5000); char stringin[5000]; bzero(stringin, 5000); char stringout[5000]; bzero(stringout, 5000); if (ret == EOF) break; int i; for (i = 0; i < l; i++) { char m[4]; bzero(m, 4); s2m(stringin[i], m); } int counter = 0; for (i = 0; i < l; i++) { char s = '\0'; int length = lengths[--lengthcounter]; m2s(&chars[counter], length, &s); counter += length; stringout[i] = s; } } } void s2m(char s, char *m) { int i; for (i = 0; i < 30; i++) { if (s == toMorse[i]) break; } } void m2s(char *m, int l, char *s) { int i; for (i = 0; i < 30; i++) { { { break; } } } *s = toMorse[i]; }
--- c5.s573.cteam097.fs.c.0.fs.c +++ c5.s600.cteam097.fs.c.0.fs.c @@ -11,34 +11,42 @@ int main() { - int lengths[2000]; - int lengthcounter = 0; - char chars[5000]; - char stringin[5000]; - char stringout[5000]; - - scanf("%s", stringin); - int l = strlen(stringin); - - int i; - for (i = 0; i < l; i++) - { - char m[4]; - bzero(m, 4); - s2m(stringin[i], m); - lengths[lengthcounter++] = strlen(m); - strcat(chars, m); - } - - int counter = 0; - for (i = 0; i < l; i++) + while (1) { - char s = '\0'; - int length = lengths[--lengthcounter]; - m2s(&chars[counter], length, &s); - counter += length; - stringout[i] = s; + int lengths[2000]; + int lengthcounter = 0; + char chars[5000]; + bzero(chars, 5000); + char stringin[5000]; + bzero(stringin, 5000); + char stringout[5000]; + bzero(stringout, 5000); + + int ret = scanf("%s", stringin); + if (ret == EOF) + break; + int l = strlen(stringin); + + int i; + for (i = 0; i < l; i++) + { + char m[4]; + bzero(m, 4); + s2m(stringin[i], m); + lengths[lengthcounter++] = strlen(m); + strcat(chars, m); + } + + int counter = 0; + for (i = 0; i < l; i++) + { + char s = '\0'; + int length = lengths[--lengthcounter]; + m2s(&chars[counter], length, &s); + counter += length; + stringout[i] = s; + } + + printf("%s\n", stringout); } - - printf("%s\n", stringout); }