Source code for submission s716

fs.cpp

  1. #include <string.h>
  2. #include <stdio.h>
  3. #include <assert.h>
  4.  
  5. char morse[400][5];
  6. char vyhladaj(char* x);
  7.  
  8. int main()
  9. {
  10. memset(morse, 0, 400*5);
  11. strcpy(morse['A'], ".-");
  12. strcpy(morse['B'] ,"-...");
  13. strcpy(morse['C'] ,"-.-.");
  14. strcpy(morse['D'] , "-..");
  15. strcpy(morse['E'] ,".");
  16. strcpy(morse['F'] ,"..-.");
  17. strcpy(morse['G'] ,"--.");
  18. strcpy(morse['H'] ,"....");
  19. strcpy(morse['I'] ,"..");
  20. strcpy(morse['J'] ,".---");
  21. strcpy(morse['K'] ,"-.-");
  22. strcpy(morse['L'] , ".-..");
  23. strcpy(morse['M'] , "--");
  24. strcpy(morse['N'] , "-.");
  25. strcpy(morse['O'] , "---");
  26. strcpy(morse['P'] , ".--.");
  27. strcpy(morse['Q'] , "--.-");
  28. strcpy(morse['R'] , ".-.");
  29. strcpy(morse['S'] , "...");
  30. strcpy(morse['T'] , "-");
  31. strcpy(morse['U'] , "..-");
  32. strcpy(morse['V'] , "...-");
  33. strcpy(morse['W'] , ".--");
  34. strcpy(morse['X'] , "-..-");
  35. strcpy(morse['Y'] , "-.--");
  36. strcpy(morse['Z'] , "--..");
  37. strcpy(morse['_'] , "..--");
  38. strcpy(morse[','] , ".-.-");
  39. strcpy(morse['.'] , "---.");
  40. strcpy(morse['?'] , "----");
  41.  
  42. int znak;
  43. int c[1000];
  44. int l = 0, i, posTrans = 0;
  45. char trans[4000];
  46.  
  47. while (true) {
  48. if ((znak=getc(stdin)) == EOF) return 0;
  49. if (znak != '\n') {
  50. //printf("%s", morse[znak]); fflush(stdout);
  51. c[l] = strlen(morse[znak]);
  52. strncpy( trans + posTrans, morse[znak], c[l]);
  53. posTrans += c[l];
  54. l++;
  55. //printf("%c", znak); fflush(stdout);
  56. } else {
  57. posTrans= 0;
  58. for (i = l - 1; i >= 0; i--) {
  59. char prem[100];
  60. strncpy(prem, trans + posTrans, c[i]);
  61. prem[c[i]] = 0;
  62. posTrans +=c[i];
  63. putc(vyhladaj(prem), stdout);
  64. }
  65. l = 0;
  66. posTrans = 0;
  67. printf("\n");
  68. }
  69. //printf("%c", znak); fflush(stdout);
  70. }
  71. return 0;
  72. }
  73.  
  74.  
  75. char vyhladaj(char* input){
  76. int i ;
  77. for(i=0; i<255; i++){
  78. if( morse[i])
  79. if ( ! strcmp(morse[i], input))
  80. return i;
  81. }
  82.  
  83. return 0;
  84. }
  85.