Ir para conteúdo

POWERED BY:

Arquivado

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

aKILLes

terminar o programa

Recommended Posts

O que tenho que fazer:

 

Ponteiros

Receber por digitação uma string de até 20 caracteres num vetor de caracteres local à função main. Em seguida, visualizar um menu com as seguintes de opções:

 

1 – Converter os caracteres para maiúsculos

2 – Converter os caracteres para minúsculos

3 – Criptografar as vogais

4 – Descriptografar as vogais

5 – Substituir uma letra

6 – Visualizar o vetor

7 – Receber nova string

8 – Sair do programa

 

Ao receber uma opção, chamar uma função específica criada para realizar a operação, a qual deverá receber como parâmetro o endereço do vetor, pois toda a alteração feita deverá ocorrer no próprio vetor.

 

Para a opção 5, considerar também o envio da letra a ser substituída e da que irá substituir, também, como parâmetros.

 

Para a operação de criptografar vogais, considerar a seguinte proposta de conversão:

a → e

e → i

i → o

o → u

u → a

 

Para a operação de descriptografar vogais, considerar a seguinte proposta de conversão:

a → u

e → a

i → e

o → i

u → o

 

O que fiz:

 

# include <iostream>
# include <cstdlib>
# include <ctype.h>
# include <ctype.h>
using namespace std;

char coversor_maius (char maius[])
{
  int i;
  for(i=0; maius[i]!= ' '; i++)
  maius[i] = toupper(maius[i]);
  return (maius[i]);
}



char coversor_minus (char minus[])
{
  int i;
  for(i=0; minus[i]!= ' '; i++)
  minus[i] = tolower(minus[i]);
  return (minus[i]);
}	

char cript_vog (char palavra[])
{
  int i;
  for(i=0; i< palavra[i]; i++)
   if (palavra[i] == 'a')
   palavra[i] == 'e'; 
   if (palavra[i] == 'e')
   palavra[i] == 'i';
   if (palavra[i] == 'i')
   palavra[i] == 'o';
   if (palavra[i] == 'o')
   palavra[i] == 'u';
   if (palavra[i] == 'u')
   palavra[i] == 'a';
   return (palavra[i]);
}

char descript_vog (char palavra[])
{
  int i;
  for(i=0; i< palavra[i]; i++)
   if (palavra[i] == 'a')
   palavra[i] == 'u'; 
   if (palavra[i] == 'e')
   palavra[i] == 'a';
   if (palavra[i] == 'i')
   palavra[i] == 'e';
   if (palavra[i] == 'o')
   palavra[i] == 'i';
   if (palavra[i] == 'u')
   palavra[i] == 'o';
   return (palavra[i]);
}

int main ()
{

 char caract[20];
 cout<< "Digite no maximo 20 caracteres:" << endl; 
 cin>> caract;

  {	
	cout<< "\n1 - Converter os caracteres para maiusculos" << endl;
	cout<< "2 - Converter os caracteres para minusculos" << endl;
	cout<< "3 - Criptografar as vogais" << endl;
	cout<< "4 - Descriptografar as vogais" << endl;
	cout<< "5 - Substituir uma letra" << endl;
	cout<< "6 - Visualizar o vetor" << endl;
	cout<< "7 - Receber nova string" << endl;
	cout<< "8 - Sair do programa \n" <<endl;

 char  opcao;
 cin>> opcao;

 switch (opcao)
 {
	 case 1:
   coversor_maius;
	break;

	 case 2:
   coversor_minus (caract);
	break;

	 case 3: 
   cript_vog (caract);
	break; 

	 case 4: 
   descript_vog (caract);
	break;  
 }

}

 system ("pause");
 return (0);
}

 

Preciso de uma ajuda para:

 

Substituir uma letra

Visualizar o vetor (é só dar um cout?)

Receber nova string (é só dar um cin?)

Sair do programa

 

 

PS. Essas 4 funções que eu fiz estão corretas ou cometi algum erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para substituir a letra você deve:

-passar por referência o vetor;

-passar por valor o char que será modificado;

-passar por valor o novo char;

 

trocarLetra(char* vetor, char letraQueSeraModificada, char novaLetra)

Percorra o vetor até encontrar o char que será modificado, quando encontrar troque-o pelo novo char. Não consegui identificar no enunciado se é pra trocar todas as letras ou apenas a primeira que for encontrada no vetor, atente para isso também.

 

Para visualizar basta percorrer o vetor com cout.

 

Para receber basta passar o ponteiro para função e entrar com os dados usando cin.

 

Para sair use exit, vai encerrar o programa retornando para o SO 0, o que indica que foi finalizado sem problemas.

exit(0);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para substituir a letra você deve:

-passar por referência o vetor;

-passar por valor o char que será modificado;

-passar por valor o novo char;

 

trocarLetra(char* vetor, char letraQueSeraModificada, char novaLetra)

Percorra o vetor até encontrar o char que será modificado, quando encontrar troque-o pelo novo char. Não consegui identificar no enunciado se é pra trocar todas as letras ou apenas a primeira que for encontrada no vetor, atente para isso também.

 

Para visualizar basta percorrer o vetor com cout.

 

Para receber basta passar o ponteiro para função e entrar com os dados usando cin.

 

Para sair use exit, vai encerrar o programa retornando para o SO 0, o que indica que foi finalizado sem problemas.

exit(0);

Algo semelhante a isso:

 

void substLet(char *caract[], char letMod, char nLetra)

{

int i;

for (i=0; i<*caract; i++)

{

cout<< *caract << endl << "Entre com a posição que deseja substituir\n";

cin>> i;

i= *caract;

cout<< "Entre com o valor a ser digitado"<<endl;

cin>>nLetra;

}

}

 

?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só...

 

std::cin para de gravar no primeiro espaço!

 

o melhor é fazer um fgets(char*, length, FILE*);

 

e em FILE* você coloca stdin (standard input)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só...

 

std::cin para de gravar no primeiro espaço!

 

o melhor é fazer um fgets(char*, length, FILE*);

 

e em FILE* você coloca stdin (standard input)

Usaria esse código na hora de receber o caracteres?

Compartilhar este post


Link para o post
Compartilhar em outros sites

aKILLes,

 

Sim, sim!!

 

por exemplo:

char buff[30];

fgets(buff, 30, stdin);
printf("A sua string: %s\n", buff);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veio... aquele primeiro item qvc fez pode ser feito mais facilmente.,..

 

 

pq você não usa uma função q converte a string para maiusculo... ow para minusculo...

 

 

 

pra converter pra maiusculo usa essa aki:

 

int toupper ( int c );

 

e para minusculo usa:

 

int tolower ( int c );

 

veio...

da uma olhada nesse site aki ele tem a listagem de todas as funções do C/C++

 

http://www.cplusplus.com/

 

 

espero qpossa ter ajudado um pouco!! hehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei uma arrumada, mas não está funcionando 100% ainda, na hora de substituir de letra ele não para mais de pedir para substituir

 

# include <iostream>
#include <stdio.h>
# include <ctype.h>
# include <ctype.h>
using namespace std;

void coversor_maius (char *maius)
{
	 int i, tam;
	 tam=strlen(maius);
	 for(i=0; i<strlen(maius); i++)
	 maius[i] = toupper(maius[i]);
	 return;
}   

void coversor_minus (char *minus)
{
	 int i, tam;
	 tam=strlen(minus);
	 for(i=0; i<strlen(minus); i++)
	 minus[i] = toupper(minus[i]);
	 return;
}	   

void cript_vog (char *palavra)
{
	 int i;
	 for(i=0; i<strlen(palavra); i++)
	 {			  
		 if (palavra[i] == 'a')
			 palavra[i] == 'e'; 
		 else if (palavra[i] == 'e')
			 palavra[i] == 'i';
		 else if (palavra[i] == 'i')
			 palavra[i] == 'o';
		 else if (palavra[i] == 'o')
			 palavra[i] == 'u';
		 else if (palavra[i] == 'u')
			 palavra[i] == 'a';
		 return;
	 }
}

void descript_vog (char *palavra)
{
	 int i;
	 for(i=0; i<strlen(palavra); i++)
		 {
		 if (palavra[i] == 'a')
			 palavra[i] == 'u'; 
		 else if (palavra[i] == 'e')
			 palavra[i] == 'a';
		 else if (palavra[i] == 'i')
			 palavra[i] == 'e';
		 else if (palavra[i] == 'o')
			 palavra[i] == 'i';
		 else if (palavra[i] == 'u')
			 palavra[i] == 'o';
		 return;
		 }
}

void substLet(char *palavra)
{
	 bool troca=false;
	 char letra;
	 cout<< "Entre com a letra a ser substituida\n";
	 cin>> letra;
	 for(int i=0; i<strlen(palavra); i++)
	 {																					
			  if(palavra[i]==letra)
			  {
			  cout<<"Entre com a nova letra\n";
			  cin>> palavra[i];
			  troca=true;
			  }																						   
	 }
	 if(troca=false)
	 cout<< "Letra nao valida\n";	   
	 return;
}


int main ()
{
	
	char caract[20];
	cout<< "Digite no maximo 20 caracteres:" << endl;	
	cin>>caract;
	
	
		{  
		  cout<< "\nDigite a opcao desejada:\n";		
		  cout<< "1 - Converter os caracteres para maiusculos\n";
		  cout<< "2 - Converter os caracteres para minusculos\n";
		  cout<< "3 - Criptografar as vogais\n";
		  cout<< "4 - Descriptografar as vogais\n";
		  cout<< "5 - Substituir uma letra\n";
		  cout<< "6 - Visualizar o vetor\n";
		  cout<< "7 - Receber nova string\n";
		  cout<< "8 - Sair do programa \n" <<endl;
	
	int  opcao;
	cin>> opcao;
	
	while(opcao !=8)
	{
	switch (opcao)
	{
		   case 1: coversor_maius (caract); break;
		   case 2: coversor_minus (caract);break;		   
		   case 3: cript_vog (caract); break;
		   case 4: descript_vog (caract); break;  
		   case 5: substLet(caract);break;
		   case 6: cout<< caract; break;			 
		   case 7: cin>> caract; break;			  
		   case 8: break;		   
		   default: cout<< "\nOpcao invalida" << endl; 
		   cin>>opcao; break;
	} 
	}	
		}
			
	return (0);

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.