aboutsummaryrefslogtreecommitdiff
path: root/cpp/src/util/string_split.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/util/string_split.h')
-rw-r--r--cpp/src/util/string_split.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/cpp/src/util/string_split.h b/cpp/src/util/string_split.h
new file mode 100644
index 0000000..6809296
--- /dev/null
+++ b/cpp/src/util/string_split.h
@@ -0,0 +1,34 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// The original source code is from:
+// http://src.chromium.org/viewvc/chrome/trunk/src/base/strings/string_split.h?revision=236210
+//
+// Modifications from original:
+// 1) Supports only std::string type.
+// 2) Does not trim whitespace.
+
+#ifndef I18N_ADDRESSINPUT_UTIL_STRING_SPLIT_H_
+#define I18N_ADDRESSINPUT_UTIL_STRING_SPLIT_H_
+
+#include <string>
+#include <vector>
+
+namespace i18n {
+namespace addressinput {
+
+// Splits |str| into a vector of strings delimited by |c|, placing the results
+// in |r|. If several instances of |c| are contiguous, or if |str| begins with
+// or ends with |c|, then an empty string is inserted.
+//
+// |str| should not be in a multi-byte encoding like Shift-JIS or GBK in which
+// the trailing byte of a multi-byte character can be in the ASCII range.
+// UTF-8, and other single/multi-byte ASCII-compatible encodings are OK.
+// Note: |c| must be in the ASCII range.
+void SplitString(const std::string& str, char c, std::vector<std::string>* r);
+
+} // namespace addressinput
+} // namespace i18n
+
+#endif // I18N_ADDRESSINPUT_UTIL_STRING_SPLIT_H_