Advertisement
Asmund_11

Untitled

Nov 21st, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.46 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <stdlib.h>
  5. #define SIZE 200
  6.  
  7. typedef struct List {
  8.     char* rech;
  9.     struct List* next, * prev;
  10. } LIST;
  11. LIST *head;
  12.  
  13. void Input(LIST* p);
  14. void AddElem(LIST *pnew, LIST *pold);
  15. void Func(char rech[], char letter);
  16. void PrintList(void);
  17.  
  18. int main()
  19. {
  20.     system("chcp 1251");
  21.     char letter;
  22.     printf("Введіть букву: ");
  23.     scanf_s("%c", &letter);
  24.     scanf_s("%*c");
  25.     puts("Введіть речення:");
  26.     LIST input;
  27.     Input(&input);
  28.     PrintList();
  29.     return 0;
  30. }
  31.  
  32. void Input(LIST* p)
  33. {
  34.     if (head == NULL) {
  35.         p->prev = p->next = NULL;
  36.         head = p;
  37.     }
  38.     char buf[SIZE] = { "" };
  39.     A:
  40.     if (*gets_s(buf, SIZE) != '\0') {
  41.         fflush(stdin);
  42.         gets(buf);
  43.         p->rech = (char*)malloc(strlen(buf) + 1);
  44.         strcpy(p->rech, buf);
  45.         AddElem(p, head);
  46.         goto A;
  47.     }
  48.     else {
  49.         p->rech = NULL;
  50.         return;
  51.     }
  52. }
  53.  
  54. void AddElem(LIST* pnew, LIST* pold)
  55. {
  56.     head->prev = pnew;
  57.     pnew->next = head;
  58.     pnew->prev = NULL;
  59.     head = pnew;
  60.     return;
  61. }
  62.  
  63. void PrintList(void)
  64. {
  65.     LIST* p = head;
  66.     printf("%s", p->rech);
  67.     /*while (p != NULL) {
  68.         printf("\n%s", p->rech);
  69.         p = p->next;
  70.     }*/
  71. }
  72.  
  73. void Func(char rech[], char letter)
  74. {
  75.     char* p = strtok(rech, " ");
  76.     while (p != NULL) {
  77.         for (int i = 0; i < strlen(p); i++) {
  78.             if (p[i] == letter) {
  79.                 for (int i = 0; i < strlen(p); i++)
  80.                     p[i] = '*';
  81.                 goto A;
  82.             }
  83.         }
  84.         A:
  85.         printf("%s ", p);
  86.         p = strtok(NULL, " ");
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement