aKILLes 0 Denunciar post Postado Março 10, 2009 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
gRoOvE 0 Denunciar post Postado Março 10, 2009 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
aKILLes 0 Denunciar post Postado Março 10, 2009 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
VictorCacciari 42 Denunciar post Postado Março 10, 2009 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
aKILLes 0 Denunciar post Postado Março 11, 2009 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
VictorCacciari 42 Denunciar post Postado Março 11, 2009 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
vhbsouza 0 Denunciar post Postado Março 13, 2009 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
aKILLes 0 Denunciar post Postado Março 14, 2009 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