Para verificar se uma string começa com uma vogal ou termina com uma consoante.
  • Use índices para acessar os caracteres diretamente: string[0] (primeiro caractere) e string[strlen(string) - 1] (último caractere).
  • Utilize funções como strlen (da biblioteca <string.h>) para calcular o tamanho da string.

Passo 1

Beleza, o exercício pede um programinha em C que verifique duas coisas: se a string começa com vogal e se ela termina com consoante. Vamos usar a biblioteca <string.h> pra pegar o tamanho da string com strlen, e acessar diretamente o primeiro caractere com string[0] e o último com string[strlen(string) - 1]. Também vamos usar <ctype.h> pra facilitar e padronizar tudo com tolower.

Passo 2

Primeiro a gente lê a string do usuário e guarda em um vetor de char. Em C, string é só um array de char terminado em '\0'. Por exemplo:
char s[100];
scanf("%99s", s);
Isso lê até 99 caracteres e coloca um '\0' no fim.

Passo 3

Agora calculamos o tamanho real da string (sem contar o '\0') usando:
int n = strlen(s);
A função strlen percorre o array até encontrar '\0' e retorna quantos caracteres vieram antes dele.

Passo 4

Depois disso, pegamos o primeiro e o último caractere assim:
char primeiro = tolower(s[0]);
char ultimo   = tolower(s[n - 1]);
Usamos tolower (de <ctype.h>) pra garantir que, mesmo que o usuário digite letra maiúscula, a gente trate tudo como minúsculo.

Passo 5

Agora vem a mágica de verificar vogal e consoante.
  1. Uma vogal é um dos caracteres do conjunto { 'a', 'e', 'i', 'o', 'u' }.
  2. Uma consoante é uma letra do alfabeto que não está nesse conjunto. Além disso, pra ser consoante, queremos ter certeza de que é uma letra (usamos isalpha).
Em C a gente faz:
int comeca_com_vogal = (primeiro=='a' || primeiro=='e' || primeiro=='i' || primeiro=='o' || primeiro=='u');
int termina_com_consoante = (isalpha(ultimo) && !(ultimo=='a' || ultimo=='e' || ultimo=='i' || ultimo=='o' || ultimo=='u'));

Passo 6

Por fim, apresentamos o resultado pro usuário. A gente pode imprimir frases simples:
if (comeca_com_vogal)
    printf("A string comeca com vogal\n");
else
    printf("A string nao comeca com vogal\n");

if (termina_com_consoante)
    printf("A string termina com consoante\n");
else
    printf("A string nao termina com consoante\n");

Resposta

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

int main() {
    char s[100];
    scanf("%99s", s);

    int n = strlen(s);
    char primeiro = tolower(s[0]);
    char ultimo   = tolower(s[n - 1]);

    int comeca_com_vogal = (primeiro=='a' || primeiro=='e' || primeiro=='i' || primeiro=='o' || primeiro=='u');
    int termina_com_consoante = (isalpha(ultimo) && !(ultimo=='a' || ultimo=='e' || ultimo=='i' || ultimo=='o' || ultimo=='u'));

    if (comeca_com_vogal)
        printf("A string comeca com vogal\n");
    else
        printf("A string nao comeca com vogal\n");

    if (termina_com_consoante)
        printf("A string termina com consoante\n");
    else
        printf("A string nao termina com consoante\n");

    return 0;
}

Exercícios relacionados