Går det att omvandla en sträng till char?
Eller hur kan jag annars lösa detta? Plockar ut en rad från en textfil som hamnar i en string varde;. Den strängen vill jag sedan splitta vid varje mellanrum, tänkte använda strtok men då måste ju den vara i char. :)
strtok ska man aldrig använda (står det i manualen), inte ens om man bara skämtar, men för att göra om en string till en char* använder man thestring.c_str()
(sökte och hittade svar av bl.a. dig där det användes strtok ;) ).
Levde jag som jag lärde skulle jag ha det ännu tristare än jag har det idag ;)
Om man ändå använder C++ är det rätt enkelt att smäcka ihop en själv, här är ett smakprov ut mitt personliga kodbibliotek (måttligt testad, förmodligen buggig, etc):
void strsplit(vector<string> &outcome, const string& str, const string& delims){
int begin = 0, end;
do {
end = str.find_first_of(delims, begin);
if (end == string::npos)
end = str.length();
outcome.push_back(str.substr(begin, end - begin));
begin = str.find_first_not_of(delims, end);
} while (begin != string::npos);
}
...
vector<string> words;
strsplit(words, "There is no spoon!", " ");
// words = ["There", "is", "no", "spoon!"]
Behöver man inkludera någon extra fil för den funktionen? Får det inte att fungera (är helt ny på c++ så gör säkert många fel. :) ).
1.cpp:12: error: `vector' was not declared in this scope
1.cpp:12: error: `string' was not declared in this scope
1.cpp:12: error: `outcome' was not declared in this scope