|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
[c++] std::string.find() e virgolette
Con la std::string e la funzione find() sto cercando di prendere il testo fra due virgolette. Il problema è che, dopo aver trovato la posizione della prima virgoletta, cercando la virgoletta di chiusura mi trova la prossima virgoletta di apertura
l'unica cosa che mi viene in mente è che siano due caratteri differenti... Cerco di fornire più informazioni possibili:- ho una tastiera italiana - l'encode dell'editor è quello di default di windows - compilando con ansi o unicode, il risultato è lo stesso - la std::string è in realtà "typedeffata" per usare il TCHAR per supportare sia ansi che unicode. Codice:
typedef std::basic_string<TCHAR> tstring |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: May 2005
Messaggi: 80
|
Un suggerimento per vedere se le seconde virgolette vengono effettivamente viste come un carattere diverso: dopo aver trovato la posizione delle prime, prendi la sottostringa (posizione+1, string::npos), poi chiama il find(") su questa sottostringa; se ti trova le virgolette di chiusura non è un problema di carattere diverso, altrimenti...boh
ciao |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Niente da fare, anche con due sole virgolette (apertura e chiusura), non va. Addirittura sembra trovare le virgolette alla fine del testo, cioè non ritorna string::npos, proprio mi indica la fine della stringa
Prova tu stesso con il file allegato (mannaggia, non si possono uploadare file c/cpp). Boh ![]() EDIT: ah, sto usando mingw. Ultima modifica di kk3z : 20-02-2006 alle 16:01. |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Apr 2004
Messaggi: 130
|
Il problema non e' in string::find(), quanto nel fatto che string::substr() non funziona come credi tu. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Porca miseria, subito dopo che ho letto che non funziona come dico io mi sono ricordato che il secondo parametro è la dimensione della sottostringa, non la posizione della fine della sottostringa
E pensare che l'ho usata 10 volte prima per altri motivi... all'improvviso mi scordo. Scusat, je suis un pirlòn |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:09.










l'unica cosa che mi viene in mente è che siano due caratteri differenti... Cerco di fornire più informazioni possibili:









