Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed es_9 funzioni #438

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 71 additions & 23 deletions Array-Puntatori-Funzioni/funzioni/es_9/es_9.c
Original file line number Diff line number Diff line change
@@ -1,17 +1,6 @@
#include <stdio.h>
#include <string.h>

/**
* @brief Funzione che calcola la lunghezza di una stringa
*
* @param stringa La stringa di cui si vuole calcolare la lunghezza
*
* @return numero di caratteri che compongono la stringa
*/
int calcolo_lunghezza(char stringa[])
{
return strlen(stringa);
}
#include <stdlib.h>

/**
* @brief Funzione che conta il numero di consonanti in una stringa
Expand Down Expand Up @@ -58,13 +47,12 @@ int ricerca_vocali_in_stringa(char stringa[])
}

/**
* @brief Funzione che conta quante volte un carattere specificato appare in ciascun
* argomento della riga di comando.
* @brief Funzione che conta quante volte un carattere specificato appare in una stringa.
*
* @param stringa L'array di caratteri in cui cercare il carattere
* @param carattere Il carattere da cercare
* @param stringa la stringa su cui si ricerca
*
* @return Il numero totale di occorrenze del carattere
* @return Il numero totale di occorrenze del carattere in tutte le stringhe
*/
int ricerca_carattere(char stringa[], char carattere)
{
Expand All @@ -73,7 +61,7 @@ int ricerca_carattere(char stringa[], char carattere)
{
if (stringa[i] == carattere)
{
carattere++;
contatore++;
}
}

Expand All @@ -91,12 +79,12 @@ int ricerca_carattere(char stringa[], char carattere)
*/
int conteggio_vocali(int argc, char *argv[])
{
int somma = 0;
int somma_vocali = 0;
for (int i = 1; i < argc; i++)
{
somma = somma + ricerca_vocali_in_stringa(argv[i]);
somma_vocali = somma_vocali + ricerca_vocali_in_stringa(argv[i]);
}
return somma;
return somma_vocali;
}

/**
Expand All @@ -113,7 +101,7 @@ int conteggio_consonanti(int argc, char *argv[])
int somma_consonanti = 0;
for (int i = 1; i < argc; i++)
{
somma_consonanti = somma_consonanti + ricerca_consonanti(argv[i]);
somma_consonanti = somma_consonanti + ricerca_consonanti_in_stringa(argv[i]);
}
return somma_consonanti;
}
Expand Down Expand Up @@ -150,6 +138,57 @@ int cerca_carattere(int argc, char *argv[], char carattere)
*/
void conteggio_doppie(int argc, char *argv[], int *doppie, int *quantita_doppie)
{
*doppie = 0;
*quantita_doppie = 0;

for (int j = 0; j < argc; j++)
{
int doppie_parola_corrente = 0;

for (int i = 0; i < strlen(argv[j]); i++)
{
/* Se un carattere precedente esiste ed
* il carattere corrente e' uguale ad esso,
* una doppia e' stata trovata.
*/
if (i > 0 && argv[j][i] == argv[j][i - 1])
{
(*doppie)++;
doppie_parola_corrente++;
}
}

if (doppie_parola_corrente > 0)
{
(*quantita_doppie)++;
}
}
}

/**
* @brief Controlla se la stringa passata e' palindroma o meno
*
* @param stringa la stringa da controllare
*
* @return 1 se la stringa e' palindroma, 0 se non lo e'
*/
int palindroma(char stringa[])
{
int lunghezza = strlen(stringa);

for (int i = 0; i < lunghezza; i++)
{
/*Se viene trovato un carattere della
* stringa non invertibile la stringa
* non e' palindroma.
*/
if (stringa[i] != stringa[lunghezza - i - 1])
{
return 0;
}
}

return 1;
}

/**
Expand All @@ -164,6 +203,11 @@ int conteggio_palindrome(int argc, char *argv[])
{
int palindrome = 0;

for (int i = 0; i < argc; i++)
{
palindrome += palindroma(argv[i]);
}

return palindrome;
}

Expand All @@ -177,10 +221,14 @@ int conteggio_palindrome(int argc, char *argv[])
*/
int main(int argc, char *argv[])
{
if(argc < 2) {
exit(0);
}

char carattere;

int lunghezza = calcolo_lunghezza(argv[1]);
printf("La lunghezza è: %d\n", lunghezza);
int lunghezza = strlen(argv[1]);
printf("La lunghezza della prima parola è: %d\n", lunghezza);

int consonanti = conteggio_consonanti(argc, argv);
printf("il numero delle consonanti è: %d\n", consonanti);
Expand Down