Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    string::append() strano errore :S

    Ragazzi ho scritto questa piccola funzioncina per separare le parole presenti in una stringa..

    codice:
    void split(string x) {
    	
    	string y, tmp;
    
    	for(unsigned int i = 0; i<=x.length(); i++) {
    		
    		if ( i==x.length() || isspace(x[i]))  {
    			cout << "Parola: " << tmp << endl;
    			tmp.clear();
    		}else
    			tmp += x[i];
    	}
    
    }
    funziona tutto bene... ma se provo a scrivere al posto di:
    tmp += x[i];

    codice:
    tmp.append(x[i]);
    mi da un errore di chiamata in overload :S

    qualcuno mi sa dire perchè? :S

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Perché questa condizione:

    i<=x.length()

    è sbagliata.
    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.

  3. #3
    non dipende da quello mi fa un errore di compilazione... anche se metto solo il < me lo fa uguale...

    e se noti la condizione i = x.length(); serve solo per entrare in quell'if dove poi alla fine il carattere non viene considerato

    (per prendere anceh l'ultima parola che si trova alla fine della stringa)

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Dev'essere tmp.append(1,x[i]);

    Comunque rimane il fatto che quella condizione era sbagliata.
    Per tua fortuna il C++ effettua lo shorcut delle condizioni e quindi il programma non va in crash.
    Se le avessi invertite te ne saresti accorto.
    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 © 2024 vBulletin Solutions, Inc. All rights reserved.