diff options
author | Remko Tronçon <git@el-tramo.be> | 2009-07-31 17:14:23 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2009-07-31 18:38:18 (GMT) |
commit | b3e6f21953d5d4b55ab9ffde78e1a1ff2a59dad1 (patch) | |
tree | 5abcfac22759c56c53a4de9bdf6f7247bb079b07 /Swiften/Base/String.cpp | |
parent | aa60aa80d2d170a536c246ef6c221f92de7dd8ed (diff) | |
download | swift-contrib-b3e6f21953d5d4b55ab9ffde78e1a1ff2a59dad1.zip swift-contrib-b3e6f21953d5d4b55ab9ffde78e1a1ff2a59dad1.tar.bz2 |
Add String::split().
Diffstat (limited to 'Swiften/Base/String.cpp')
-rw-r--r-- | Swiften/Base/String.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Swiften/Base/String.cpp b/Swiften/Base/String.cpp index 3495d9a..cc989f6 100644 --- a/Swiften/Base/String.cpp +++ b/Swiften/Base/String.cpp @@ -96,4 +96,21 @@ String String::getLowerCase() const { return String(lower); } +std::vector<String> String::split(char c) const { + assert((c & 0x80) == 0); + std::vector<String> result; + String accumulator; + for (size_t i = 0; i < data_.size(); ++i) { + if (data_[i] == c) { + result.push_back(accumulator); + accumulator = ""; + } + else { + accumulator += data_[i]; + } + } + result.push_back(accumulator); + return result; +} + } |