Слово до точки занести в два стека, содержащих гласные и согласные буквы - C (СИ)
Формулировка задачи:
struct Node { char c; list *next; }n1,n2; struct ptr_stack { Node *last; };
void pop ( ptr_stack *stack ) { if ( stack->last != 0 ) { Node *tmp = Node->last->prev; delete Node->last; Node->last = tmp; } } void push ( ptr_stack *stack, num ) { Node *tmp = new list; tmp->num = num; tmp->prev = Node->last; Node->last = tmp; }
Решение задачи: «Слово до точки занести в два стека, содержащих гласные и согласные буквы»
#include <stdio.h> #include <ctype.h> #include "stack.h" int isvowel(int c) { int character = tolower(c); if ((character == 'a') || (character == 'e') || (character == 'i') || (character == 'o') || (character == 'u')) return 1; else return 0; } int main(void) { char s[256]; int i; char c; STACK_HANDLE hVowelsStack; STACK_HANDLE hConsonantStack; StackCreate(&hVowelsStack, sizeof(char)); StackCreate(&hConsonantStack, sizeof(char)); gets(s); i = 0; while (s[i] != '.') { if (isalpha(s[i])) { if (isvowel(s[i])) StackPush(hVowelsStack, &s[i]); else StackPush(hConsonantStack, &s[i]); } i++; } printf("String : '%s'\n", s); printf("Vowels in stack:\n"); while (!IsStackEmpty(hVowelsStack)) { StackPop(hVowelsStack, &c); printf("item : '%c'\n", c); } printf("Consonants in stack:\n"); while (!IsStackEmpty(hConsonantStack)) { StackPop(hConsonantStack, &c); printf("item : '%c'\n", c); } StackDelete(&hVowelsStack); StackDelete(&hConsonantStack); return 0; }
Объяснение кода листинга программы
В этом коде используется стандартная библиотека языка C, а также пользовательская библиотека для работы со стеками. Сначала определена функция isvowel, которая принимает символ и возвращает 1, если символ является гласной (a, e, i, o, u), и 0 в противном случае. В функции main создаются два указателя на стек, hVowelsStack и hConsonantStack, а также буфер для строки s. Затем в стек hVowelsStack и hConsonantStack добавляются гласные и согласные буквы из строки s до тех пор, пока не встретится точка. После этого выводится исходная строка, а затем из стеков поочередно вытаскиваются и выводятся элементы. В конце программы вызываются функции StackDelete для очистки памяти от выделенных стеков.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д