Удалить из заданной строки все гласные буквы. Вывести результат на экран. СИ

Необходимо удалить из заданной строки все гласные буквы и вывести результат на экран. Написал такую программу, однако проблема в 16-ой строчке (знаю, что сравнивать символ со строкой нельзя в си, но и написать str[j] я не могу, так как будет идти проверка на текущий символ без учёта следующих и предыдущих). Подскажите пожалуйста, что необходимо исправить.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
  
  int n, i;
  
  char s[250], out[250];
  printf("\n Enter string of chars: ");
    fgets(s, 250, stdin);
    
  for (i = 0; s[i]!='\0'; i++) {
    char str[] = "AaEeIiOoUu";
    for(int j=0; j<10; j++) {
      if (s[i] != str) {
        out[i] = s[i];
        }
    }
    
  }
  
  printf("\n%s\n", out);
  return (0);
}

Ответы (1 шт):

Автор решения: Harry

Ну напишите

if (strchr(str,s[i]) == NULL)

Т.е. если символа s[i] в строке str нет.

Только это не единственная ваша ошибка... Я бы делал так (исправляя ваш код):

int main()
{
    char str[] = "AaEeIiOoUu";
    char s[250], out[250];
    printf("\n Enter string of chars: ");
    fgets(s, 250, stdin);

    int j = 0;
    for(int i = 0; s[i]; i++)
        if (!strchr(str,s[i])) out[j++] = s[i];
    out[j] = 0;

    printf("\n%s\n", out);
}

А еще можно без строки out вообще...

int main()
{
    char str[] = "AaEeIiOoUu";
    char s[250];
    printf("\n Enter string of chars: ");
    fgets(s, 250, stdin);

    int j = 0;
    for(int i = 0; s[i]; i++)
        if (!strchr(str,s[i])) s[j++] = s[i];
    s[j] = 0;

    printf("\n%s\n", s);
}
→ Ссылка