Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - restituire la parola più lunga contenuta in una stringa testo
Forum - C/C++ - restituire la parola più lunga contenuta in una stringa testo

Avatar
asteroid (Normal User)
Newbie


Messaggi: 17
Iscritto: 21/01/2011

Segnala al moderatore
Postato alle 17:15
Sabato, 26/02/2011
dato come parametro di output una stringa che rappresenta un testo, determina e restituisce come parametri di output la parola di lunghezza massima contenuta nel testo e la sua lunghezza. Nel testo le parole sono separate da un unico "spazio".

:ot:
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. void lunghezza_parola(char *testo,int *n_caratteri);
  5. int main()
  6. {char testo[100],separatori[]={' ','\n','\t','\0'};
  7.   int n_caratteri,i,conta_carattere=0;
  8.   printf("inserisci testo:\n");
  9.   gets(testo);
  10.   system("PAUSE");     
  11.   return 0;
  12. }



herman
PM Quote
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Segnala al moderatore
Postato alle 20:06
Sabato, 26/02/2011
Non riesco a capire. Le varie stringhe da dove le prendi? Da un file? Se è come ho inteso io devi aprire il file ed usare la funzione fgets; (per favore non usare mai piú gets che è deprecata) . Successivamente va creata una funzione con varibili di tipo int (lunghezza str) e la stringa. Le due variabili devono essere di tipo static, in modo tale da non permettere la perdita dei dati contenuti nella funzione. Un if e un else fanno tutto...


Yep, I came back :P
PM Quote
Avatar
andrea993 (Member)
Rookie


Messaggi: 21
Iscritto: 19/01/2011

Segnala al moderatore
Postato alle 11:29
Domenica, 27/02/2011
Prima di tutto volevo dirti che hai sbagliato di scrivere la domanda perchè il primo output suppongo sia un input, almeno da quello che ho capito.

Quello che vuoi fare tu è vedere qual'è la parola più lunga.
Beh...visto che il testo contiene al massimo 100 caratteri direi che al massimo troveremo 50 parole o meno.

Allora crea una matrice di interi[2][50].
Codice sorgente - presumibilmente C/C++

  1. int matrix[2][50];


Nella riga 0 tieni conto della lunghezza delle parole e nella riga 1 tieni conto di dove si trova la parola (usa l'indice).

Dopo trovi il massimo della riga 0 e stampi il massimo trovato e la parola corrispondente che troverai con il riferimento nella riga 1.



PM Quote
Avatar
andrea993 (Member)
Rookie


Messaggi: 21
Iscritto: 19/01/2011

Segnala al moderatore
Postato alle 11:30
Domenica, 27/02/2011
Prima di tutto volevo dirti che hai sbagliato di scrivere la domanda perchè il primo output suppongo sia un input, almeno da quello che ho capito.

Quello che vuoi fare tu è vedere qual'è la parola più lunga.
Beh...visto che il testo contiene al massimo 100 caratteri direi che al massimo troveremo 50 parole o meno.

Allora crea una matrice di interi[2][50].
Codice sorgente - presumibilmente C/C++

  1. int matrix[2][50];


Nella riga 0 tieni conto della lunghezza delle parole e nella riga 1 tieni conto di dove si trova la parola (usa l'indice).

Dopo trovi il massimo della riga 0 e stampi il massimo trovato e la parola corrispondente che troverai con il riferimento nella riga 1.



PM Quote
Avatar
andrea993 (Member)
Rookie


Messaggi: 21
Iscritto: 19/01/2011

Segnala al moderatore
Postato alle 11:48
Domenica, 27/02/2011
Prima di tutto volevo dirti che hai sbagliato di scrivere la domanda perchè il primo output suppongo sia un input, almeno da quello che ho capito.

Quello che vuoi fare tu è vedere qual'è la parola più lunga.
Beh...visto che il testo contiene al massimo 100 caratteri direi che al massimo troveremo 50 parole o meno.

Allora crea una matrice di interi[2][50].
Codice sorgente - presumibilmente C/C++

  1. int matrix[2][50];


Nella riga 0 tieni conto della lunghezza delle parole e nella riga 1 tieni conto di dove si trova la parola (usa l'indice).

Dopo trovi il massimo della riga 0 e stampi il massimo trovato e la parola corrispondente che troverai con il riferimento nella riga 1.



PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 14:58
Martedì, 01/03/2011
Testo quotato

Postato originariamente da Pitagora:

Se è come ho inteso io devi aprire il file ed usare la funzione fgets; (per favore non usare mai piú gets che è deprecata) .




cosa vuole dire? fgets e gets fanno due cose completamente diverse...


"There's no point in being exact about something if you don't even know what you're talking about."

JOHN VON NEUMANN


Siamo italiani NO??
Allora scriviamo in ITALIANO!!!!
PM Quote
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Segnala al moderatore
Postato alle 16:41
Martedì, 01/03/2011
Testo quotato

Postato originariamente da lorenzo:
cosa vuole dire? fgets e gets fanno due cose completamente diverse...



Codice sorgente - presumibilmente Plain Text

  1. fgets(testo, 100, stdin);


Codice sorgente - presumibilmente Plain Text

  1. gets(testo);



ammettiamo che hanno lo stesso stream (stdin), mi dici cosa cambia?


Yep, I came back :P
PM Quote