不用 boost 库,最简单的方式, 怎么拿到 test123
test/test123
1
winterfell30 2018-08-08 19:25:36 +08:00
str.substr(str.rfind('/'))?
|
2
MeteorCat 2018-08-08 19:25:42 +08:00 via Android
........tinyhttp 在 http 解析的时候有针对字符串截断,参考下用\0 截断
|
3
agostop 2018-08-08 19:27:13 +08:00
我想问下,现在做 C++开发的,是不是基本离不开 boost ?
|
4
changnet 2018-08-08 19:27:48 +08:00 via Android
看具体需求,我很多时候都是 for 循环去找
|
5
wsds OP @winterfell30 有这么简单的方法 ?网上没查到过这个答案
|
6
singer 2018-08-08 19:28:45 +08:00 via iPhone
STL 不行么?
|
7
glacer 2018-08-08 19:34:14 +08:00
自己实现 split 函数不就行了么,循环过一遍而已
|
8
SPACELAN 2018-08-08 19:36:30 +08:00
emmm,写 c++的,从来不用 boost
|
9
gnaggnoyil 2018-08-08 21:00:50 +08:00 1
range-v3 就有现成的`ranges::view::split`.不过你确定你这不是个 X-Y 问题?我觉得你可能更需要`ranges::view::tokenize`
|
10
innoink 2018-08-08 21:04:58 +08:00 via Android
你难道不去 cppreference.com 上看看 std::string 有哪些成员函数么?
|
11
byteli 2018-08-08 21:20:30 +08:00 via Android
string 这么蛋疼的东西还是用成熟的好,比如 qstring
|
13
tangxiaoqiang123 2018-08-08 21:33:53 +08:00
std::string split(char* str, const char* sep) {
std::stringstream o; char* s = strtok(str, sep); while (s != NULL) { o << s; s = strtok(NULL, sep); } return o.str(); } |
14
winterfell30 2018-08-08 21:34:34 +08:00
@wsds 如果是像你举的那个例子这么简单这样就可以了,要完全实现 split 的功能还是自己写一个函数吧
|
15
hanminghui 2018-08-08 21:37:50 +08:00
常备 cppreference,学到了
|
16
lolcat 2018-08-08 21:43:49 +08:00
#include <string.h>
.... char *p=(strchr("test/test123",'/')+1); 这应该是最简单的方法了吧? |
17
dosmlp 2018-08-08 21:49:43 +08:00
自己写一个分割函数就完了,多大点事还发个帖子
|
18
yanaraika 2018-08-08 22:55:58 +08:00
range-v3 吧,header-only,比起 boost 小太多,无痛引入
|
19
agagega 2018-08-08 23:02:36 +08:00
<algorithm> 里面的 find
|
20
agostop 2018-08-09 09:04:42 +08:00
boost 是个可以让 C++变 java 的神奇之库吗?
|
21
v2qwsdcv 2018-08-09 09:51:38 +08:00
|
22
araraloren 2018-08-09 11:08:48 +08:00
~~ 推荐 strtok 的都是什么心态。。
|
23
mingl0280 2018-08-09 12:50:04 +08:00
string s("test/test123");
int lastSlash = s.rfind('/'); if (lastSlash != s::npos) string t = s.substr(lastSlash+1); t 就是结果。 |
25
yazoox 2018-08-09 12:59:36 +08:00
也挺好奇的,现在 c++都用什么库?
裸的 c++用起来,真的老费劲了...... |
26
dychenyi 2018-08-09 14:02:59 +08:00
23 是最简单的写法。
|