Czyzby znowu konkurs "Kto to napisze najkrocej?"
Odnosnie funkcji strtok:
BUGS
Never use these functions. If you do, note that:
These functions modify their first argument.
These functions cannot be used on constant strings.
The identity of the delimiting character is lost.
The strtok() function uses a static buffer while parsing, so it's not thread safe. --------------------------
Dobra, a teraz moja propozycja kodu:
#include <vector>
#include <string>
using namespace std;
vector<string> SplitIntoWords(const string& Str) {
vector<string> Result;
int SpacePos = -1;
int OldPos = 0;
while ((SpacePos = Str.find(" ", SpacePos + 1)) != string::npos) {
Result.push_back(Str.substr(OldPos, SpacePos - OldPos - 1));
OldPos = SpacePos;
}
Result.push_back(Str.substr(OldPos, string::npos));
return Result;
}
Uniwersalne, przenosne, krotkie i szybkie. :)