Помогите написать на Си
Ввести строку , вывести только слова, заканчивающиеся на гласную букву
Код:
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define is_delim(c) (isspace((c)) || ispunct((c)))
char* get_words(char** s, const char* of){
char* t, *p = *s;
while((p = strpbrk(p, of)) != NULL){
if(!*(p + 1) || is_delim(*(p + 1))){
t = p + 1;
while((p >= *s) && !is_delim(*p))
--p;
if(*t)
*t++ = '\0';
*s = t;
return p + 1;
}
++p;
}
return NULL;
}
int main(void){
char* p, *w;
char s[128];
const char vs[] = "aeoiuyAEOIUY";
printf("Enter str: ");
scanf("%127[^\n]", s);
#if defined(__BORLANDC__) || defined(_MSC_VER)
fflush(stdin);
#endif
p = &s[0];
while((w = get_words(&p, vs)) != NULL)
puts(w);
getchar();
return 0;
}
#include <ctype.h>
#include <string.h>
#define is_delim(c) (isspace((c)) || ispunct((c)))
char* get_words(char** s, const char* of){
char* t, *p = *s;
while((p = strpbrk(p, of)) != NULL){
if(!*(p + 1) || is_delim(*(p + 1))){
t = p + 1;
while((p >= *s) && !is_delim(*p))
--p;
if(*t)
*t++ = '\0';
*s = t;
return p + 1;
}
++p;
}
return NULL;
}
int main(void){
char* p, *w;
char s[128];
const char vs[] = "aeoiuyAEOIUY";
printf("Enter str: ");
scanf("%127[^\n]", s);
#if defined(__BORLANDC__) || defined(_MSC_VER)
fflush(stdin);
#endif
p = &s[0];
while((w = get_words(&p, vs)) != NULL)
puts(w);
getchar();
return 0;
}