fork(1) download
  1. #include <stdio.h>
  2.  
  3. char msg[] = "84268 1478963 456 741456963 1578963 7412369258 14863456";
  4.  
  5. int Check(const char* start, char ch1, char ch2)
  6. {
  7. char sub1[3];
  8. char sub2[3];
  9. sprintf(sub1, "%c%c", ch1, ch2);
  10. sprintf(sub2, "%c%c", ch2, ch1);
  11. return strstr(start, sub1) || strstr(start, sub2);
  12. }
  13.  
  14. void Print(int colored) { printf(colored ? "#" : " "); }
  15.  
  16. int main(void) {
  17. const char* kp[] = {
  18. " /*",
  19. "789",
  20. "456",
  21. "123",
  22. "00."
  23. };
  24. for (int r = 0; r < 7; r++) {
  25. int row = r / 2;
  26. char* start = msg;
  27. while (1) {
  28. char* end = strchr(start, ' ');
  29. if (end) *end = '\0';
  30. for (int col = 0; col < 3; col++) {
  31. if (r & 1) {
  32. Print(Check(start, kp[row][col], kp[row+1][col]));
  33. if (col < 2) Print(
  34. Check(start, kp[row][col], kp[row+1][col+1]) ||
  35. Check(start, kp[row+1][col], kp[row][col+1]));
  36. } else {
  37. Print(strchr(start, kp[row][col]));
  38. if (col < 2)
  39. Print(Check(start, kp[row][col], kp[row][col+1]));
  40. }
  41. }
  42. if (!end) break;
  43. *end = ' ';
  44. start = end + 1;
  45. printf(" ");
  46. }
  47. printf("\n");
  48. }
  49. return 0;
  50. }
  51.  
Success #stdin #stdout 0s 2168KB
stdin
Standard input is empty
stdout
                                               
                                               
  #    #####         #   #  #####  # # #    #  
 # #   #   #         #   #   #  #  # # #   # # 
#   #  #   #  #####  #####    # #  # # #  #####
 # #   #   #         #   #   #  #  # # #  #   #
  #    #   #         #   #  #   #  #####  #   #