
不用 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 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 是最简单的写法。 |