• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto Sommare le vocali in un'array di struct

pe.pp.e

Utente Medio
Autore del topic
10 Aprile 2012
101
0
Miglior risposta
0
Salve a tutti,come da titolo dovrei contare le vocali delle parole contenute in un array di struct.La struttura e' la seguente:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Ovviamente ho riempito gia l'array di struttura mettendo per ogni indirizzo,una parola...tipo per esempio strcpy(elem[0].parola,"prova");....ora però vorrei contare le vocali di ogni parola dell'array di struttura,in modo tale che mi ritorni la parola con il maggior numero di vocali...il bello è che non so proprio come fare....qualcuno sa aiutarmi????...grazie in anticipo!!!!
 
Riferimento: Sommare le vocali in un'array di struct

Non conosco affatto il C/C++, però di logica potresti sostituire le consonanti, facendo così restare solo le vocali nella parola e contare i suoi caratteri una volta fatto ciò.

Se esistono anche qua le chiavi di valore (esempio: arr['miakey'] = "Valore"), in un ciclo prelevi i valori dell' array e fai la stessa cosa per ognuno, mettendo come key il numero di vocali, mentre come value la parola completa.

Se ciò va a buon fine, con un reverse dell' array li ottieni in ordine decrescente, quindi il primo valore sarà quello con più vocali.
 
Riferimento: Sommare le vocali in un'array di struct

Il parametro

char *s

e' un puntatore a char, serve a passare una stringa del C.
 
Riferimento: Sommare le vocali in un'array di struct

Il parametro

char *s

e' un puntatore a char, serve a passare una stringa del C.

ma io non dovrei passargli la struct,dentro cui c'è la stringa che a me interessa???
 
Riferimento: Sommare le vocali in un'array di struct

No, gli devi passare la stringa. Vedi il main.
 
Riferimento: Sommare le vocali in un'array di struct

ho cpt quello che dici...cmq il problema fondamentale è che io ho dichiarato la struct in un file(.h) per renderla globale,e inoltre le inizializzazioni dell'array di struttura non sono nel main,ma in un altra funzione....
 
Riferimento: Sommare le vocali in un'array di struct

E quindi? Qual è il problema?

La voccount è una funzione dedicata al conteggio delle vocali di una stringa.
Fa solo il suo lavoro, indipendentemente da dove sta la stringa che gli passi.
 
Ultima modifica:
Riferimento: Sommare le vocali in un'array di struct

il problema è che quindi nel main non co some richiamare la funzione....cioè il parametro della funzione non è identificato,giustamente nel main,in quanto non esiste nessuna variale char *s....quindi come la posso richiamare la funzione nel main???
 
Riferimento: Sommare le vocali in un'array di struct

Hai letto tutto il codice che ti ho mostrato ? Non c'è solo la funzione ma anche tutto il main ...
 
Riferimento: Sommare le vocali in un'array di struct

ok ho risolto...però vorrei capirci qualcosa di più....dato che non è che l'ho capito benissimo,mi spiegheresti come funzione il codice da te scritto?????
 
Ultima modifica:
Riferimento: Sommare le vocali in un'array di struct

Scusa, ma se hai risolto dovresti aver capito il codice. Cosa non capisci?
 
Riferimento: Sommare le vocali in un'array di struct

no dico...ho risolto perchè ho capito dove sbagliavo a richiamare la funzione...ma non capisco ad esempio a cosa serve int sl=strlen(s);....cioè prende la lunghezza solo della 1 stringa????
 
Riferimento: Sommare le vocali in un'array di struct

Il problema è nella tua conoscenza delle funzioni. Sai come si lavora con le funzioni, cosa sono e a cosa servono i parametri ?

All'interno della funzione la linea

int sl=strlen(s);

serve ad ottenere la lunghezza della stringa passata dall'esterno alla funzione.
Nel main chiamo la funzione in questo modo

nv=voccount(elem.parola);

passando una stringa del tuo vettore di strutture, una alla volta dato che il codice sta all'interno del ciclo pilotato dalla variabile i

Quindi passo la prima stringa, viene calcolato il numero di vocali contenute e restituito nella variabile nv, poi passo la seconda stringa e così via.
 
Riferimento: Sommare le vocali in un'array di struct

ho capito ora...grazie ancora