Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16
  1. #11
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    26
    Originariamente inviato da jobv
    Come puoi leggere nel link che ti ho postato per leggere unintera linea (terminata da '\n') puoi usare "getline" a cui passi un oggetto di tipo string.

    Visto che ha te serve leggere due frasi potresti usare due oggetti di tipi string e leggerle con qusta funzione.

    Dopo ciò, visto che ogni parola è separata da uno spazio, un trattino o virgola (anche se dire che le parole sono separate da una virgola vorrebbe dire una cosa di questo tipo: prima_parola,seconda_parola e non prima_parola, sevonda_parola non so se mi spiego) il numero di parola è uguale al numero di spazi,trattini ecc... + 1 (per l'ultima parola...prova a scriverle su in foglio ).

    Quindi potresti cercare il numero di occorrenze di questi caratteri con il metodo find della classe string:

    http://it.wikibooks.org/wiki/Dal_C_a...delle_stringhe

    In particolare:
    il problema non è trovare il numero delle parole.... ma CONFRONTARE due frasi... o meglio.. le parole delle due frasi... quind bisogna per forza fare come avevo già pensato... creare due array.. uno per ogni frase.. e ad ogni elemento corrisponde una parola.... altri suggerimenti?

  2. #12
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    93
    codice:
    #include <string>
    #include <cstring>
    #include <iostream>
    
    using namespace std;
    int main() 
    {
       char c;
       string str[20];
       string line;
       int i, j, count;
       
       cout << "\nImmetti prima frase: ";
       i=0;
       do
       {
         cin.get(c);
         while(c!='\n' && c!='-' && c!=' ')
         {
           str[i]+=c;
           cin.get(c);
         }
         i++;
       }
       while(c!='\n');
       
       cout << "\nImmetti seconda frase: ";
       getline(cin,line);
       
       count=0;
       for(j=0;j<i;j++)
       {
         if(line.find(str[j])!=string::npos)
         {
           cout << str[j].c_str() << endl;
           count++;
         }
       }
       
       cout << count << endl;
       return 0;
    }

  3. #13
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    26
    perfetto... così funziona... grazie

  4. #14
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    26
    ah.. un ultima cosa... chi mi spiega bene quale sia la differenza tra cin.get() , gets() e cin.getline(), getline() ? nn ci sto capendo più niente con tutte queste funzioni

  5. #15
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    93
    gets: legge dallo standard input fino a trovare una new line ('\n'), la sostituisce con '\0' e mette la stringa così ricavata nell'char * che prende in input.

    Per le altre...visto che in c++ ciò che fanno le funzioni dipende da con quali e quanti parametri le chiami:

    http://www.cplusplus.com/reference/i...m/istream/get/

    http://www.cplusplus.com/reference/i...tream/getline/
    http://www.sanlab.it/post/2008/11/01...-in-C2b2b.aspx

  6. #16
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Correzione.
    Originariamente inviato da jobv
    gets: legge dallo standard input fino
    a quando il programma esplode in un nuovo big bang.
    E' deprecata dallo standard C e non dev'essere (evidenzio casomai non si capisse) MAI USATA!!!
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.