Sviluppare una funzione C che , dato come parametri di ingresso un array di char e la sua dimensione

Come sviluppare una funzione C che , dato come parametri di ingresso un array di char e le sue dimensioni , determina e restituisce come parametro di uscita il personaggio meno frequente nel linguaggio di programmazione C ?


risposta:
  1. /**
  2.     Sviluppare una function C che, dati come parametri di input un array di char e il suo
  3.     size, determina e restituisce come parametro di output il carattere meno frequente.
  4.  
  5. **/
  6. #include <stdio.h>
  7. #include <string.h>
  8. #include <stdlib.h>
  9.  
  10. char lettmin(int n, char s[]) {
  11. char alfabeto[] = "abcdefghilmnopqrstuvz";
  12. int i,j;
  13. int occor[21];
  14.     // Pulisco l'array occor
  15.         for(= 0; i < 21; i++)
  16.         occor[i] = 0;
  17.     // tutti i caratteri della stringa in minuscolo
  18.     for(i=0;i<n;i++)
  19.         {
  20.                 s[i]=tolower(s[i]);
  21.         }
  22.     // Scorro tutta la stringa
  23.    for(i=0;i<n;i++) {
  24.        // Scorro tutto l'alfabeto
  25.     for (j=0;j<21;j++) {
  26.         // Se la lettera che sto prendendo in esame è uguale a una delle lettere dell'alfabeto
  27.         // Incremento il contatore il cui indice è la posizione della lettera all'interno dell'alfabeto
  28.         if(s[i] == alfabeto[j]) {
  29.             occor[j]++;
  30.             }
  31.                         }
  32.                     }
  33. // inizializzo min al primo elemento di occor[0]
  34. int min=occor[0];
  35. // inizializzo l'indice della lettera a 0
  36. int j_min=0;
  37. // Ricerca del minimo all'interno dell'array
  38. for (j=0;j<21;j++) {
  39.     if(occor[j]<min)
  40.     {
  41.         min=occor[j];
  42.         j_min=j;
  43.     }
  44. }   // trovato l'indice della lettera che si presenta il minor numero di volte,
  45.     // ritorno la lettera all'interno dell'alfabeto
  46.     return alfabeto[j_min];
  47. }
  48.  
  49.  
  50.  
  51.  int main() {
  52.  
  53. char s[]="Pochi sforzan quel gambo di vite";
  54. int n;
  55. n=strlen(s);
  56.  
  57. int a;
  58. a=lettmin(n,s);
  59. // Stampo il risultato ottenuto
  60. printf("%c",a);
  61.  
  62. }


Learn More :