如何获得最后一个斯特托克
How to get the last strtok?
我想拆分一个"字符串"(分隔符)以获得最后一次出现。这是我写的代码:
char str[] ="D:\Google Drive\My Files\Test.zip";
char * buffer = str;
sprintf(buffer, "%s", strtok(str,"\"));
cout << buffer;
但它返回D:
而不是Test.zip
(第一次出现,而不是最后一次出现)。你会如何完成这项任务?
我需要使用/保持 sprintf(即格式字符串应用程序)。
改用strrchr - 它在这种情况下更合适,并且既非破坏性又可重入:
char str[] ="D:\Google Drive\My Files\Test.zip";
char * buffer = strrchr(str, '');
cout << buffer + 1;
如果您确实必须根据您的问题保留sprintf
的冗余和低效使用,那么您当然可以这样做:
char str[] ="D:\Google Drive\My Files\Test.zip";
char buffer[256];
sprintf(buffer, "%s", strrchr(str, '') + 1);
cout << buffer;
现场演示
相关文章:
- lower_bound()返回最后一个元素
- 获取向量C++中第一个值和最后一个值的和
- 获取用C/C++打印的最后一个字符串
- 使用运算符 [] 引用 std::vector 上最后一个元素时出现问题<>
- 为什么这个程序返回最后一个单词而不是最长的单词?
- 为什么我的最后一个 ELSE 条件无法正确执行
- Lower_bound不适用于具有 3 个元素的向量的最后一个元素
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- 仅显示链表的最后一个元素
- 测试迭代器是否位于列表中的最后一个
- push_back通过自行创建的对象获取最后一个元素的向量
- 使用 map.end() 访问 map 的最后一个元素
- 如何知道地图中的最后一个元素是否被删除?
- std::矢量保存 只推送最后一个元素
- 反转后不返回最后一个元素
- 如何删除矢量中的重复值,最后一个除外
- 如何在写入文件时擦除最后一个逗号
- 如何在C 中获得字符串的最后一个字符
- 如何获得最后一个斯特托克
- 如何在c++中获得字符串的最后一个字符