我想split
a string
它的工作原理。这只是当我打印到console
我得到一个奇怪的output
像这样 - ╨╕[╝。也许有人可以提示我做错了什么?这是我的代码C++分割字符串给出了一个奇怪的输出
#include <stdio.h>
#include <windows.h>
#include <string>
#include <sstream>
#include <vector>
using namespace std;
vector<string> &split(const string &s, char delim, vector<string> &elems);
vector<string> split(const string &s, char delim);
int main() {
vector<string> x = split("E:\\TEST\\filename.txt", '\\');
int pos = x.size() - 1;
printf("filename is %s\n", &x.at(pos));
system("PAUSE");
return 0;
}
vector<string> &split(const string &s, char delim, vector<string> &elems) {
stringstream ss(s);
string item;
while (getline(ss, item, delim)) {
elems.push_back(item);
}
return elems;
}
vector<string> split(const string &s, char delim) {
vector<string> elems;
split(s, delim, elems);
return elems;
}
'矢量和分裂(常量字符串&S,焦炭DELIM ,矢量&elems){/ * ... */return elems; }' - 只是想知道 - 如果你不使用它,为什么会有返回值? –
为什么不进行调试以查看究竟发生了什么?以及为什么你认为你需要'返回'的东西?你通过引用传递,所以不需要再返回它。只是'无效'它 –
@underscore_d它不会返回一个局部变量的引用。 'return elems'中的'elems'是作为参数传入的非const引用。 –