Ir ao conteúdo

Tratamento de strings


xxkobraxx

Posts recomendados

Postado

boas tardes a todos.

tenho uma certa duvida que queria que me ajudassem.

eu fiz um programa que le uma frase e devolve o unmero de espaços em branco numero de vogais e numero de consoantes.

ate aos espaços em branco tudo muito bem o problema esta nas vogais e consoantes.

o programa em certa parte le bem so acho que tem algum tipo de limitador porque nao le mais do que 6 vogais e nao sei quantas consoantes. eis o

Codigo:


char cvogais[] = "aeiou";
char cconsoantes[] = "bcdfghjklmnpqrstwxyz";

cout << " Inotrduza a frase " << endl << endl;
cin.getline(cfrase, 250);

for(int x = 0; x < strlen(cfrase); x++)
{
if(cfrase[x] == ' ')
{
icontadorbranco++;
}
}

for(int x = 0; x <= strlen(cvogais); x++)
{
for(int y = 0; y <= strlen(cvogais); y++)
{
if(cfrase[x] == cvogais[y])
{
icontadorvogais++;
}
}
}

for(int x = 0; x <= strlen(cconsoantes); x++)
{
for(int y = 0; y <= strlen(cconsoantes); y++)
{
if(cfrase[x] == cconsoantes[y])
{
icontadorconsoantes++;
}
}
}

cout << " A frase tem " << icontadorbranco << " espacos em branco " << endl << endl;
cout << " A frase tem " << icontadorvogais << " vogais " << endl << endl;
cout << " A frase tem " << icontadorconsoantes << " consoantes " << endl << endl;
char cfrase[250];


já vi e revi e nao percebo onde errei alguém me pode ajudar?

eu acho que ate deve ser alguma coisa bastante rapida so que nao sei mesmo.

obrigado e fiquem bem :)

Postado

você ta usando o parametros errados...

for(int x = 0; x <= strlen(******CFRASE******); x++)

{

for(int y = 0; y <= strlen(cvogais); y++)

{

if(cfrase[x] == cvogais[y])

{

icontadorvogais++;

}

}

}

a mesma coisa nas consoantes... so uma coisa... tem como você enxugar seu codigo... você pode fazer os tres "major" for em 1 só... esse quebra cabeça eu deixo pra você pensar

Postado
você ta usando o parametros errados...

for(int x = 0; x <= strlen(******CFRASE******); x++)

{

for(int y = 0; y <= strlen(cvogais); y++)

{

if(cfrase[x] == cvogais[y])

{

icontadorvogais++;

}

}

}

a mesma coisa nas consoantes... so uma coisa... tem como você enxugar seu codigo... você pode fazer os tres "major" for em 1 só... esse quebra cabeça eu deixo pra você pensar

iiiiii que falha estão má nem vi o parametro :muro:

e quanto ao fazer o prog a correr num uncio for ta complicado:confused: nao me queres dar uma ajuda? nao digo daresme o codigo porque isso nao quero mas o raciocinio necessario para ver se chego la :D

e ja agora se tiveres tempo dizme tambem o como eu faço para agora separar as vogais das consoantes e mostralas ao utilizador, eu sei que tenho cas armazenar num vector mas nao estou a ver como faço isso =/

se me puderes ajudar nessa tambem agradecia :lol:

mais uma vez obrigado a todos :D

Postado
for(int x = 0; x < strlen(cfrase); x++)
{
if(cfrase[x] == ' ')
{
icontadorbranco++;
}
else
{
for(int y = 0; y <= strlen(cvogais); y++)
{
if(cfrase[x] == cvogais[y])
{
icontadorvogais++;
}
else
{
icontadorconsoantes++;
}
}
}

  • Membro VIP
Postado

Seria interessante tratar os casos usando um loop de switch-cases.Coloque um strlen para definir a quantidade de caracteres; use essa quantidade no loop e coloque para avaliaçao no loop.abração.

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!