gpt4 book ai didi

c++ - 如何获得最后一个strtok?

转载 作者:行者123 更新时间:2023-11-27 22:50:22 27 4
gpt4 key购买 nike

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

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;

LIVE DEMO

关于c++ - 如何获得最后一个strtok?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37743371/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com