如何获得最后的strtok?

     2023-02-22     38

关键词:

【中文标题】如何获得最后的strtok?【英文标题】:How to get the last strtok? 【发布时间】:2016-06-10 08:23:07 【问题描述】:

我想拆分一个“字符串”(分隔符\)以获取最后一次出现的位置。 This 是我写的代码:

char str[] ="D:\\Google Drive\\My Files\\Test.zip";
char * buffer = str;

sprintf(buffer, "%s", strtok(str,"\\"));
cout << buffer;

但它返回D: 而不是Test.zip(第一次出现,而不是最后一次出现)。您将如何完成这项任务?

我需要使用/保留 sprintf(即格式字符串方法)。

【问题讨论】:

你为什么还要在所谓的 C++ 程序中使用 C 字符串和 C API?为什么不使用例如编写正确的 C++ 代码? std::string ? 【参考方案1】:

改用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;

LIVE DEMO

【讨论】:

对不起。但我需要使用/保留 sprintf(即格式字符串方法)。 嗯,这看起来很傻 - 但如果你需要的话,我会降低它的效率。 那是因为我实际上正在使用 WDL_string 容器 github.com/olilarkin/wdl-ol/blob/master/WDL/wdlstring.h 。我可以使用“格式字符串”设置/附加字符串。该容器没有 .Split 函数。 不要忘记测试buffer != NULL尤其是如果要搜索的字符串是用户输入。 嗯,我想这不是使用 WDL_String 执行此操作的最佳方法。你有什么建议?

我如何获得一个月的最后一天?

】我如何获得一个月的最后一天?【英文标题】:HowdoIgetthelastdayofamonth?【发布时间】:2011-01-3009:14:31【问题描述】:如何在C#中找到一个月的最后一天?例如,如果我的日期是03/08/1980,如何获得第8个月的最后一天(在本例中为3... 查看详情

如何获得一个月的最后一天?

】如何获得一个月的最后一天?【英文标题】:Howtogetthelastdayofthemonth?【发布时间】:2010-09-0718:17:33【问题描述】:有没有一种方法可以使用Python的标准库轻松确定(即一个函数调用)给定月份的最后一天?如果标准库不支持,d... 查看详情

strcat 如何影响 strtok?

】strcat如何影响strtok?【英文标题】:Howdoesstrcataffectthestrtok?【发布时间】:2021-12-2910:34:21【问题描述】:假设我们需要通过连接输入的标记将用户的输入复制到另一个字符串中,例如"helloworld"-&gt;"helloworld"。#i... 查看详情

使用strtok从字符串中解析空标记(代码片段)

...tok的限制。设计师考虑到了以空格分隔的标记。strtok无论如何都做不了多少;只需滚动你自己的解析器。CFAQhasanexample。另一答案在第一次调用时,函数需要一个C字符串作为str的参数,其第一个字符用作扫描标记的起始位置。在后... 查看详情

NULL 的 Strtok 用法

.../cstring/strtok/上找到了使用strtok()的示例,但不明白它们是如何通过"pch=strtok(NULL,",.-");"从一个令牌到另一个令牌获取的代码如下:/*strtokexample*/#inclu 查看详情

如何在postgres中获得一个月的最后一天?

】如何在postgres中获得一个月的最后一天?【英文标题】:Howtogetthelastdayofmonthinpostgres?【发布时间】:2015-01-2806:28:37【问题描述】:如何在postgres中找到该月的最后一天?我有一个日期列以格式(YYYYMMDD)存储为数字(18)我正在... 查看详情

如何获得每个岛屿的第一排和最后一排?

】如何获得每个岛屿的第一排和最后一排?【英文标题】:Howtogetfirstandlastrowofeachisland?【发布时间】:2020-06-0700:55:28【问题描述】:所以我最近在一个问题上得到了很好的帮助。但是,我需要更精确一些,希望这在SQL中是可行的... 查看详情

我如何获得同名Javascript的最后一个值[重复]

】我如何获得同名Javascript的最后一个值[重复]【英文标题】:HowdoigetthelastvalueinthesamenameJavascript[duplicate]【发布时间】:2018-12-1308:27:45【问题描述】:我正在努力做到这一点Hope但我就是这样Myresult我该怎么办?这是我的代码。谢... 查看详情

你将如何获得最后 10 个键 redis?

】你将如何获得最后10个键redis?【英文标题】:Howwouldyougetthelast10keysredis?【发布时间】:2013-05-1012:43:18【问题描述】:假设我有一个包含1,000,000个键的数据库。有没有办法知道该数据库中的最后10个键?【问题讨论】:不行,你... 查看详情

如何获得 Python Selenium 中的最后一堂课

】如何获得PythonSelenium中的最后一堂课【英文标题】:HowcanIgetthelastclassinPythonSelenium【发布时间】:2021-06-2817:04:55【问题描述】:我正在创建一个使用selenium从网站提取数据的程序。在这种情况下,我试图了解课程的长度。我在网... 查看详情

我如何获得我在 android 中的最后一个已知位置?

】我如何获得我在android中的最后一个已知位置?【英文标题】:Howdoigetmylastknownlocationinandroid?【发布时间】:2016-07-3011:16:28【问题描述】:我正在使用googleplay服务来获取我最后的位置。该项目在没有强制关闭的情况下运行良好... 查看详情

如何获得一个月内每周的第一天和最后一天?

】如何获得一个月内每周的第一天和最后一天?【英文标题】:Howtogetfirstdayandlastdayforeveryweekinamonth?【发布时间】:2015-07-2404:07:35【问题描述】:如何获取一个月中每个周的第一天(星期一)和最后一天(星期日)?示例:2015年... 查看详情

如何获得最后 10 个然后显示随机 5

】如何获得最后10个然后显示随机5【英文标题】:howtogetlast10andthenshowrandom5【发布时间】:2015-09-0206:43:58【问题描述】:大家好,我是一名php开发人员,现在我遇到一个简单的问题,比如我想从我的数据库表中获取最后10个数据... 查看详情

Google Sheets API v4 - 如何获得最后一行的价值?

】GoogleSheetsAPIv4-如何获得最后一行的价值?【英文标题】:GoogleSheetsAPIv4-Howtogetthelastrowwithvalue?【发布时间】:2016-09-1620:06:03【问题描述】:如何在新的GoogleSheetsAPIv4中获取最后一行的值?我使用它从工作表中获取范围:mService.spr... 查看详情

如何获得递归 CTE 中生成的最后一条记录?

】如何获得递归CTE中生成的最后一条记录?【英文标题】:HowdoyougetthelastrecordgeneratedinarecursiveCTE?【发布时间】:2010-09-0707:29:00【问题描述】:在下面的代码中,我在SQLServer2005中使用递归CTE(公用表表达式)来尝试查找基本层次... 查看详情

如何在 cassandra 中通过更新时间获得最后 n 个结果?

】如何在cassandra中通过更新时间获得最后n个结果?【英文标题】:howtogetlastnresultsbyupdatedtimeincassandra?【发布时间】:2014-04-3016:57:34【问题描述】:我想获取最后n个,比如最后5个更新的行,即按cassandra中的updated_timedesc排序。有... 查看详情

如何获得状态Powerbi中最后一个值的最大日期

】如何获得状态Powerbi中最后一个值的最大日期【英文标题】:howtogetlargestdatewiththelastvalueinstatusPowerbi【发布时间】:2021-12-3013:13:59【问题描述】:我有一个列名(action_date)的表我想在状态(Approve)(action_code)时获取最新日期我在action_... 查看详情

如何将指针从 strtok 转换为字符串? [关闭]

】如何将指针从strtok转换为字符串?[关闭]【英文标题】:Howtoconvertpointersfromstrtoktostrings?[closed]【发布时间】:2020-03-2914:55:07【问题描述】:例如:intmain()char*str[4];chardata[]="abcd:3:4:5";str[0]=strtok(data,":");str[1]=strtok(NULL,":");str[2]=strtok 查看详情