Wendel Nunes Postado Março 25, 2010 Denunciar Share Postado Março 25, 2010 (editado) Ola estou tentando criar um codigo que le uma frase e fale quantas vezes cada caracter da frase se repetiu!por exemplo wendel nunesw=1 veze=3 vezesn=3 vezesd=1 vezl=1 vezu=1 vezs=1 vezai fiz este más acho que não ficou legal.#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ char texto[100]; char letras[] = "abcdefghijklmnopqrstuvxzwyABCDEFGHIJKLMNOPQRSTUVXZWY"; char letrasaux[100]; int x, y, cont=0; printf ("\nEscreva um texto: \n"); gets (texto); for (x=0; x<strlen(letras); x++) { for (y=0; y<strlen(texto); y++) { if (texto[y] == letras[x]){ cont++; printf ("\nA letra %c contem %d vez(es) na frase\n", texto[y], cont); } } cont=0; } system("pause"); return 0;}[/codebox]sei que para imprimir textos com acentuação teria que usar tabela ASCII mas ai e mais complicado hehe!queria dicas para melhorar?!?! Sugestões! Editado Março 25, 2010 por Wendel Nunes Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Março 25, 2010 Denunciar Share Postado Março 25, 2010 Você poderia criar um array int caracteres[255], e mapear cada indice para um valor ASCII.Por exemplo, caracteres[65] seria o 'A'. Então a cada 'A', você incrementaria caracteres[65]++.Depois é só fazer um loop rodando os 255 indices. Se for igual a 0, não faça nada.Se maior ou igual a 1, imprima a mensagem usando %c como i.Exemplo:int i = 0; for(i = 0; i < 255; ++i) { if(caracteres[i] > 0) { printf("A letra %c aparece %d vez(es) na frase.\n", i, caracteres[i]); } }Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Wendel Nunes Postado Março 25, 2010 Autor Denunciar Share Postado Março 25, 2010 Você poderia criar um array int caracteres[255], e mapear cada indice para um valor ASCII.Por exemplo, caracteres[65] seria o 'A'. Então a cada 'A', você incrementaria caracteres[65]++.Depois é só fazer um loop rodando os 255 indices. Se for igual a 0, não faça nada.Se maior ou igual a 1, imprima a mensagem usando %c como i.Exemplo:int i = 0; for(i = 0; i < 255; ++i) { if(caracteres[i] > 0) { printf("A letra %c aparece %d vez(es) na frase.\n", i, caracteres[i]); } }Abraços.opa vlw vou tentar aqui e posto se surgir alguma dúvida vlw!abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Wendel Nunes Postado Março 30, 2010 Autor Denunciar Share Postado Março 30, 2010 Vlw awe pela dica consegui resolver pelo que você me passou!ta awe #include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ char frase[100]; int fraseaux[100]; int ascii[255]; int i; printf("\n:::Algoritimo que conta quantas vezes cada letra de uma frase repetiu:::\n"); printf("\nDigite uma frase: \n"); printf("\n"); gets(frase); //Zerando Tabela ASCII for (i=0; i<255; i++){ ascii[i]=0; } //Transformando carcteres de frase em inteiros (ASCII) for (i=0; i<strlen(frase);i++){ fraseaux[i]=frase[i]; } //transformando caracteres caixa alta para caixa baixa for (i=0; i<strlen(frase); i++){ if (fraseaux[i] > 64 && fraseaux[i] <91){ fraseaux[i]=fraseaux[i]+32; } } //contar quantidades de vezes for (i=0; i<strlen(frase); i++){ //rodo por todas as letras if (fraseaux[i] != 32){ // retirar espaços da contagem ascii[fraseaux[i]]++; } /* Guardando quantidade de vezes que a letras se repete*/ } //imprimindo repetidos for (i=0; i<255; i++){ if (ascii[i] > 1){ //verificar se e maior quer 1 pois não a necessidade de imprimir 1 ou 0 vezes! printf("\nA letra %c repetiu %d vezes na frase que voce escreveu!\n", i, ascii[i]); } } printf("\n"); system("pause"); return 0;}[/codebox]rodando certim vlw! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Wendel Nunes
Ola estou tentando criar um codigo que le uma frase e fale quantas vezes cada caracter da frase se repetiu!
por exemplo wendel nunes
w=1 vez
e=3 vezes
n=3 vezes
d=1 vez
l=1 vez
u=1 vez
s=1 vez
ai fiz este más acho que não ficou legal.
sei que para imprimir textos com acentuação teria que usar tabela ASCII mas ai e mais complicado hehe!
queria dicas para melhorar?!?! Sugestões!
Editado por Wendel NunesLink para o comentário
Compartilhar em outros sites
3 respostass 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.