我想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引用。 –