Advertisement
R0drigues

Strings 23/05 1-c

May 23rd, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.90 KB | None | 0 0
  1. #include <stdio.h>
  2. #include<string.h>
  3. #include<strings.h>
  4. #define TAMANHO 1001
  5.  
  6. int ehUpper(char carac)
  7. {
  8.     if(carac >= 'A' && carac <= 'Z')
  9.         return 1;
  10.     return 0;
  11. }
  12.  
  13. int ehLower(char carac)
  14. {
  15.     if(carac >= 'a' && carac <= 'z')
  16.         return 1;
  17.     return 0;
  18. }
  19.  
  20. int ehLetra(char carac)
  21. {
  22.     if(ehLower(carac) || ehUpper(carac))
  23.         return 1;
  24.     return 0;
  25. }
  26.  
  27. int igual(char carac, char carac2)
  28. {
  29.     int d = 'a' - 'A';
  30.     if(carac == carac2)
  31.         return 1;
  32.     if(ehLetra(carac) && ehLetra(carac2))
  33.     {
  34.         if(carac == carac2 || (carac+d) == carac2 || (carac-d) == carac2)
  35.             return 1;
  36.     }
  37.     return 0;
  38. }
  39.  
  40. void inicCom0(int vet[], int tam)
  41. {
  42.     int i;
  43.     for(i = 0; i < tam; i++)
  44.         vet[i] = 0;
  45. }
  46.  
  47. void copiaChars(char frase[],char letras[])
  48. {
  49.     int i, j = 1, k, faz = 0;
  50.     if(frase[0] != '\0')
  51.     {
  52.         letras[0] = frase[0];
  53.         for(i = 1;frase[i] != '\0';i++){
  54.             faz = 1;
  55.             for(k = 0; k < j; k++)
  56.             {
  57.                 if(frase[i] == letras[k])
  58.                 {
  59.                     faz = 0;
  60.                     break;
  61.                 }
  62.             }
  63.             if(faz != 0)
  64.             {
  65.                 letras[j] = frase[i];
  66.                 j++;
  67.             }
  68.         }
  69.     }
  70.     letras[j] = '\0';
  71. }
  72.  
  73. void nDeChars(char frase[])
  74. {
  75.     char caracs[TAMANHO];
  76.     int quant[TAMANHO], i,j;
  77.     copiaChars(frase,caracs);
  78.     inicCom0(quant, TAMANHO);
  79.     for(i = 0; frase[i] != 0; i++)
  80.     {
  81.         for(j = 0; caracs[j] != '\0'; j++)
  82.         {
  83.             if(frase[i] == caracs[j])
  84.                 quant[j] ++;
  85.         }
  86.     }
  87.     for(i = 0; caracs[i+1] != '\0'; i++)
  88.         printf("Caracter '%c' aparece %d vezes\n",caracs[i],quant[i]);
  89. }
  90.  
  91. int main()
  92. {
  93.     char frase[TAMANHO];
  94.     while(1){
  95.     fgets(frase,TAMANHO-1,stdin);
  96.     nDeChars(frase);
  97.     }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement