Удалить из слова все согласные буквы - C (СИ)
Формулировка задачи:
Решение задачи: «Удалить из слова все согласные буквы»
#include <stdio.h> #include <stdlib.h> #include <string.h> int is_gl(char s) { char D[13]="AaEeIiOoUuYy"; int i; for(i=0;i<13;i++) { if(s==D[i])return 1; } return 0; } char* rem_chs(char* s) { char* p=(char*)malloc(sizeof(char)*strlen(s)+1); char *pp=p, *ss=s; if(pp!=NULL) { while(*ss) { if(is_gl(*ss)) { ++ss; continue; } else { *pp++=*ss; ++ss; } } *pp='\0'; s=p; free(p); return s; } return NULL; } int main(void) { puts( rem_chs("algol")); return 0; }
Объяснение кода листинга программы
Этот код на языке C предназначен для удаления всех согласных букв из строки. Сначала определена функция is_gl, которая проверяет, является ли символ гласной (A, a, E, e, I, i, O, o, U, u, Y, y). Эта функция использует массив символов D размером 13, который содержит все гласные буквы в нижнем и верхнем регистре. Затем определена функция rem_chs, которая принимает строку и возвращает новую строку без согласных букв. Сначала функция выделяет память под новую строку, затем проходит по исходной строке, копируя в новую только те символы, которые не являются согласными. В основной функции main новая строка без согласных букв выводится на экран. Обратите внимание, что этот код не обрабатывает ошибки, например, что будет, если передать функции rem_chs NULL или пустую строку.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д