Sem usar as funções para manipulação de strings da biblioteca <string.h>, use a função gets () para armazenar seu nome na string nome [100] e:
a. Informe o numero de caracteres do seu nome.
b. Informe o numero de vogais, consoantes e espaços em branco do seu nome.
c. Exiba seu nome sem vogais e espaços em branco.
d. Substituir um caractere informado pelo usuário pelo caractere ‘*’.

Passo 1

A gente precisa ler o nome do usuário usando a função gets() numa string de tamanho 100, depois percorrer essa string para calcular várias coisas (quantidade de caracteres, vogais, consoantes e espaços), criar outra string sem vogais nem espaços e, por fim, substituir um caractere escolhido por ‘*’ no nome original.

Passo 2

First, declare as variáveis necessárias: um vetor char nome[100], contadores int total=0, vogais=0, consoantes=0, espacos=0;, índices int i, j; e uma segunda string char semVogais[100].
Use gets(nome); para ler o nome completo (com espaços) do usuário. Essa função lê até o caractere de nova linha e coloca o \0 no final.

Passo 3

Percorra nome num loop for(i=0; nome[i]!='\0'; i++) e: incremente total; se nome[i] for espaço (' '), incremente espacos; senão, se for letra (isalpha(nome[i])), teste se é vogal comparando toupper(nome[i]) com 'A','E','I','O','U' para incrementar vogais ou, caso contrário, consoantes.

Passo 4

Para montar a string sem vogais nem espaços, use outro loop: inicialize j=0; para cada nome[i], se não for espaço nem vogal (mesmo teste de vogal), copie nome[i] para semVogais[j++]. Ao final, faça semVogais[j]='\0'.

Passo 5

Peça ao usuário um caractere para substituir: use char alvo; scanf(" %c", &alvo); e então percorra nome de novo; sempre que nome[i]==alvo, atribua nome[i]='*'.

Passo 6

Por fim, mostre na tela: número total de caracteres, vogais, consoantes, espaços, o nome sem vogais e espaços e o nome com substituições.

Resposta

#include <stdio.h>
#include <ctype.h>
int main() {
char nome[100];
char semVogais[100];
int total = 0, vogais = 0, consoantes = 0, espacos = 0;
int i, j;
char alvo;
printf("Digite seu nome: ");
gets(nome);  // leitura do nome com espaços

// a) contar total de caracteres, vogais, consoantes e espaços
for (i = 0; nome[i] != '\0'; i++) {
    total++;
    if (nome[i] == ' ') {
        espacos++;
    } else if (isalpha((unsigned char)nome[i])) {
        char c = toupper((unsigned char)nome[i]);
        if (c=='A' || c=='E' || c=='I' || c=='O' || c=='U')
            vogais++;
        else
            consoantes++;
    }
}

// b) exibindo resultados parciais
printf("\nTotal de caracteres: %d\n", total);
printf("Vogais: %d\n", vogais);
printf("Consoantes: %d\n", consoantes);
printf("Espacos em branco: %d\n", espacos);

// c) montar string sem vogais nem espacos
j = 0;
for (i = 0; nome[i] != '\0'; i++) {
    if (nome[i] != ' ') {
        char c = toupper((unsigned char)nome[i]);
        if (!(c=='A' || c=='E' || c=='I' || c=='O' || c=='U')) {
            semVogais[j++] = nome[i];
        }
    }
}
semVogais[j] = '\0';
printf("\nNome sem vogais e espacos: %s\n", semVogais);

// d) substituir caractere informado por '*'
printf("\nDigite o caractere a ser substituido por '*': ");
scanf(" %c", &alvo);
for (i = 0; nome[i] != '\0'; i++) {
    if (nome[i] == alvo) {
        nome[i] = '*';
    }
}
printf("Nome apos substituicao: %s\n", nome);

return 0;
}

Exercícios relacionados