radical78 Postado Agosto 4, 2017 Denunciar Share Postado Agosto 4, 2017 Preciso de ajudar com este exercicio... 1) Criar um programa que faça a leitura de um nome completo e formate o nome conforme o modelo abaixo: Exemplo 01: Entrada: Tiago - Ramão Benitez - Soares Saída: SOARES, Tiago Ramao Benitez Exemplo 02: Entrada: THIAGO,jUliO%YaFuSSo Saída: YAFUSSO, Thiago Julio O programa deve: • Considerar somente letras do nome; • Remover espaços em excesso; • Substituir caracteres acentuados pelo seu respectivo caracter, sem acento. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vangodp Postado Agosto 5, 2017 Denunciar Share Postado Agosto 5, 2017 vou por o código aqui. Está bem comentado, mas realmente só tem uma forma de se fazer isso, e é praticando muito com manipulação de strings. Não espere seu professor passar exercícios, comece a praticar muito com strings, passe uma frase de minúscula a maiúsculas, intercale letras tipo AeIoU, etc, invente exercícios e tente resolve-los, só assim você será capaz de dominar a linguagem, se ficar esperando o professor passar exercícios vai ficar com carências. Por exemplo você pode buscar isso para lhe ajudar no google: "exercícios de manipulação de strings em C" #include<stdio.h> #include <ctype.h>//isalpha int main(){ char frase[100] = "Tiago - Ramão Benitez - Soares"; // Implementar a entrada por scanf vc >_< char vogalSem[]="aeioua", vogalCom[]="áéíóúã"; //precisa complementar para mais acentos tipo ê, ô etc int i,j; //Elimina acentos (Troca 'á' por 'a' ou 'ã' por 'a'). //Explicação: Se a letra analizada coincidir com algumas das acentuadas que estão no vetor vogalCom, troca essa letra pela que está na mesma posição, porem do vetor vogalSem for (i=0;frase[i]!='\0';i++){ for(j=0;j<sizeof(vogalCom);j++){ if(vogalCom[j]==frase[i]) frase[i]=vogalSem[j]; } } //troca tudo o que não for letras por espaços //Explicação: Se a letra analizada não(!) for uma das que estão no alfabeto troca a letra por um espaço for ( i=0; frase[i]!='\0' ; i++ ) { if ( !isalpha(frase[i]) ){ frase[i]=' '; } } //Separamos a frase em uma matriz de 3 palavras(sem espaços pois são apenas 3 palavras e não uma frase) char palavra[3][100]; sscanf(frase,"%s %s %s", palavra[0], palavra[1], palavra[2] ); //Agora precisamos dar formato para a saida pela tela: //apelido paterno em maiuscula for (i=0; palavra[2][i]!='\0' ;i++ ) { putchar( toupper(palavra[2][i]) ); } putchar(' '); //Imprime um espaço //nome em minuscula for (i=0; palavra[0][i]!='\0' ;i++ ) { putchar( tolower(palavra[0][i]) ); } putchar(' '); //Imprime um espaço //apelido materno em minuscula for (i=0; palavra[1][i]!='\0' ;i++ ) { putchar( tolower(palavra[1][i]) ); } getchar();//pausa return 0; } Isso aqui é praticar, praticar e mais praticar, não há outra forma. Sorte! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
radical78
Preciso de ajudar com este exercicio...
1) Criar um programa que faça a leitura de um nome completo e formate o nome conforme o modelo abaixo:
Exemplo 01: Entrada: Tiago - Ramão Benitez - Soares Saída: SOARES, Tiago Ramao Benitez
Exemplo 02: Entrada: THIAGO,jUliO%YaFuSSo Saída: YAFUSSO, Thiago Julio
O programa deve: • Considerar somente letras do nome; • Remover espaços em excesso; • Substituir caracteres acentuados pelo seu respectivo caracter, sem acento.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.