Ir ao conteúdo
  • Cadastre-se

Vogais


Gustavo5015

Posts recomendados

Bom, vamos lá;

Tenho 2 exercícios.

1-Conte quantas vogais aparecem na palavra;

2-Imprima somente as vogais em maiúsculas;

O número 1 eu consegui fazer, segue o código:

int contarVogais(char palavra[]) {
char vogais[10] = "aeiouAEIOU";
int i, j, quantidadeVogais=0;
for(i=0; i<=strlen(palavra); ++i) {
for(j=0; j<=sizeof(vogais); ++j) {
if(palavra[i] == vogais[j]) {
quantidadeVogais++;
}
}
}
return quantidadeVogais;
}

Só que o 2 eu não consegui, procurei na net e não achei nada parecido.

Se alguém puder me ajudar ficarei muito grato! E se puder, me falar como otimizar esse código, tenho a leve impressão de que ele poderia ser mais simples..

Link para o comentário
Compartilhar em outros sites

Olá Gustavo,

para resolver o exercício 2 você pode utilizar-se da tabela Ascii.

Fazendo com que o programa percorra o vetor com os caracteres e imprima na tela somente as vogais em maiúsculo, segue abaixo os valores das vogais maiúsculas:

A : 65

E : 69

I : 73

O : 79

U : 85

Veja o código:

#include <stdio.h>

int main(){
int i =0;
int z =0;
int maiusculos[] = {65,69,73,79,85};
char msg[] = "FoRUmCluBEdOHArdwAre";
for(i=0;i<sizeof(msg);i++){
for(z=0;z<sizeof(maiusculos);z++)
{
if(msg[i] == maiusculos[z])
printf("%c",msg[i]);
}
}
}

Link para o comentário
Compartilhar em outros sites

Obrigado gui, desculpe a demora pra responder.

Refiz o código de outra maneira e agora estou com um problema besta, deve ser fácil a solução do mesmo.

Temos o seguinte código:


#include <stdio.h>

void main() {
int i, j;
char palavra[15], aux[15];
printf("Digite uma palavra: ");
gets(palavra);
for(i=0; i<=strlen(palavra); ++i) {
//Imprimir consoantes e vogais maisculas da palavra
for(j='A'; j<='Z'; ++j) {
if(palavra[i] == j) {
aux[i] = palavra[i];
}
}
}
printf("%s", aux);
}

O código acima lê uma palavra, e percorre a mesma até encontrar uma LETRA MAIÚSCULA, até ai tudo bem.

O meu problema é o seguinte, eu quero criar um vetor que armazene essa LETRA MAIÚSCULA para depois eu poder imprimir.

Eu criar o vetor aux[15] pra receber cada vetor da palavra.

aux = palavra, tentei também strcpy e não deu

Então essa é a dúvida, como criar um vetor de caracteres que armazene outro? Obrigado desde ja galera.

Link para o comentário
Compartilhar em outros sites

Olá Gustavo5015, veja o código:


#include <stdio.h>

int main() {
int i, j,[COLOR="Red"] k = 0[/COLOR];
char palavra[15], aux[15];
printf("Digite uma palavra: ");
gets(palavra);
for(i=0; i<=strlen(palavra); ++i) {
//Imprimir consoantes e vogais maisculas da palavra
for(j='A'; j<='Z'; ++j) {
if(palavra[i] == j) {
[COLOR="red"]aux[k] = palavra[i];
k++;[/COLOR]
}
[COLOR="red"]aux[k+1] = '\0';[/COLOR]
}
}
printf("%s\n", aux);
system("pause");
return 0;
}

declarei outra variável para receber as letras maiúsculas e depois coloquei o caracter '\0' para fechar a string.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!