So che ci sono diversi modi per farlo in Java e C che sono belli, ma in C++ non riesco a trovare un modo per implementare facilmente una funzione di taglio delle stringhe.Spazio vuoto ritagliato da una stringa
Questo è quello che ho attualmente:
string trim(string& str)
{
size_t first = str.find_first_not_of(' ');
size_t last = str.find_last_not_of(' ');
return str.substr(first, (last-first+1));
}
ma ogni volta che provo e chiamo
trim(myString);
ottengo l'errore del compilatore
/tmp/ccZZKSEq.o: In function `song::Read(std::basic_ifstream<char,
std::char_traits<char> >&, std::basic_ifstream<char, std::char_traits<char> >&, char const*, char const*)':
song.cpp:(.text+0x31c): undefined reference to `song::trim(std::string&)'
collect2: error: ld returned 1 exit status
Sto cercando di trovare una semplice e modo standard di tagliare gli spazi bianchi iniziali e finali da una stringa senza occupare 100 righe di codice e io ho provato a usare regex, ma non ho potuto farlo funzionare bene.
Inoltre non è possibile utilizzare Boost.
è 'song' uno spazio dei nomi? È una lezione? –
possibile duplicato di [Rimozione di spazi iniziali e finali da una stringa] (http://stackoverflow.com/questions/1798112/removing-leading-and-trailing-spaces-from-a-string) –
Questa domanda non è proprio fare con il taglio, ma con l'errore di collegamento. Probabilmente ottieni lo stesso errore indipendentemente dalla definizione di assetto – Brandin