3208 · String splitting
C++
Easy
This topic is a pre-release topic. If you encounter any problems, please contact us via “Problem Correction”, and we will upgrade your account to VIP as a thank you.
Description
This question requires you to complete the function splitString in the file Solution.cpp.
This function takes two arguments.
A string s as the original string to be split.
A non-empty string t is used as a splitting basis.
All the split substrings in order are formed into a vector and returned using the return statement.
The evaluation machine runs main.cpp to call the splitString function in Soluction.cpp by importing a custom function library, and parses the contents of the returned string vector.
There is no need to use the cin statement or the cout statement for this problem.
The input data is stored in the arguments of the function, and the output data is returned using the return statement.
Example
Input Sample 1:
asdf,Hello,ok
,
Output sample 1:
[“asdf”, “Hello”, “ok”]
All commas , of the original string are removed and the string is separated from the comma position.
Input Sample 2:
,
Output sample 2:
[]
The original string is empty, so an empty vector container is returned.
解法1:
/**
* @param s: A string
* @param t: A string
* @return: A vector of sub strings
*/
vector<string> splitString(string &s, string &t) {
vector<string> res;
string s2(s);
while (s2.size() > 0) {
int pos = s2.find(t);
if (pos == -1) {
res.push_back(s2);
break;
}
res.push_back(s2.substr(0, pos));
s2 = s2.substr(pos + 1);
}
return res;
}
解法2:
/**
* @param s: A string
* @param t: A string
* @return: A vector of sub strings
*/
vector<string> splitString(string &s, string &t) {
vector<string> res;
int start = 0, pos = 0;
pos = s.find(t);
while (pos != -1) {
res.push_back(s.substr(start, pos - start));
start = pos + 1;
pos = s.find(t, start);
if (pos == -1) res.push_back(s.substr(start));
}
//if (pos == -1) res.push_back(s.substr(pos + 1));
return res;
}
本文介绍了一种使用C++实现的字符串拆分算法,通过指定的分隔符将原始字符串拆分成多个子串,并以vector形式返回。文章提供了两种不同的实现方式,详细展示了如何有效地进行字符串的拆分操作。

被折叠的 条评论
为什么被折叠?



