Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [c++ stl]replace

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++ stl]replace

    ciao.
    ho questo codice trovato su google
    codice:
    strText.replace(0,strText.length(), bind2nd(std::equal_to<char>(), '_'), '.');
    , solo che il compilatore(vs 2008) mi da' il seguente errore:
    Errore 2 error C2664: 'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::replace(uns igned int,unsigned int,const _Elem *,unsigned int)' : cannot convert parameter 3 from 'std::binder2nd<_Fn2>' to 'const char *'

    dove sbaglio?

  2. #2
    Ma fare semplicemente
    codice:
    strText.replace(0,strText.length(), '_', '.');
    ?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    ho provato
    strText.replace(0,strText.length(), '_', '.');
    ma cosi' non mi funziona, strText è = a tex_jpg e dopo il replace è = a "..........".

    perchè questi punti?

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Il problema è che non esiste un overload di std::string::replace() che accetti due caratteri in input, e il penultimo viene interpretato come intero.

    http://msdn.microsoft.com/en-us/libr...8VS.80%29.aspx

    Hai due strade:
    1) strText.replace(strText.find('_'),1,1,'.');

    2) std::replace(strText.begin(),strText.end(),'_','.' );

    P.S.
    Occhio che NON fanno la stessa cosa.
    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.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    in questo modo pero' credo che faccia il replace della prima occorrenza , come faccio se voglio sostituire piu' di un occorrenza del carattere?
    Grazie.

  6. #6
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Metodo 2
    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.