Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #define SIZE 200
- typedef struct List {
- char* rech;
- struct List* next, * prev;
- } LIST;
- LIST *head;
- void Input(LIST** p);
- void AddElem(LIST *pnew, LIST *pold);
- void PrintList(void);
- LIST* DeleteElem(LIST* p);
- void FreeElement(LIST* p);
- void FreeList(LIST* p);
- void Func(char rech[], char letter);
- int main()
- {
- system("chcp 1251");
- char letter;
- printf("Введіть букву: ");
- scanf_s("%c", &letter);
- scanf_s("%*c");
- puts("Введіть речення:");
- LIST input;
- Input(&input);
- PrintList();
- //FreeList(head);
- return 0;
- }
- void Input(LIST** p)
- {
- char buf[SIZE] = { "" };
- A:
- (*p) = (LIST*)malloc(sizeof(LIST));
- if (head == NULL) {
- (*p)->prev = (*p)->next = NULL;
- head = (*p);
- }
- if (*gets_s(buf, SIZE) != '\0') {
- fflush(stdin);
- gets(buf);
- (*p)->rech = (char*)malloc(strlen(buf) + 1);
- strcpy((*p)->rech, buf);
- AddElem((*p), head);
- goto A;
- } else {
- //FreeElement(p);
- return;
- }
- }
- void AddElem(LIST* pnew, LIST* pold)
- {
- head->prev = pnew;
- pnew->next = head;
- pnew->prev = NULL;
- head = pnew;
- return;
- }
- void PrintList(void)
- {
- LIST* p = head;
- printf("%s", p->rech);
- /*while (p != NULL) {
- printf("\n%s", p->rech);
- p = p->next;
- }*/
- }
- LIST* DeleteElem(LIST* p)
- {
- LIST* pnext;
- p->next->prev = p->prev;
- pnext = p->prev->next = p->next;
- FreeElement(p);
- return pnext;
- }
- void FreeElement(LIST* p)
- {
- free(p->rech);
- free(p);
- }
- void FreeList(LIST* p)
- {
- if (p == NULL)
- return;
- head = p->next;
- FreeElement(p);
- FreeList(head);
- }
- void Func(char rech[], char letter)
- {
- char* p = strtok(rech, " ");
- while (p != NULL) {
- for (int i = 0; i < strlen(p); i++) {
- if (p[i] == letter) {
- for (int i = 0; i < strlen(p); i++)
- p[i] = '*';
- goto A;
- }
- }
- A:
- printf("%s ", p);
- p = strtok(NULL, " ");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement