如何获得最后的strtok?

时间:2016-06-10 08:23:08

标签: c++ string split strtok

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

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

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

但它返回D:而不是Test.zip(第一次出现,而不是最后一次出现)。你会怎么做这个任务?

我需要使用/ keep sprintf(即格式字符串approch)。

1 个答案:

答案 0 :(得分:4)

使用strrchr代替 - 在这种情况下更合适,同时也是非破坏性和可重入的:

sprintf

如果您真的必须根据您的问题保持char str[] ="D:\\Google Drive\\My Files\\Test.zip"; char buffer[256]; sprintf(buffer, "%s", strrchr(str, '\\') + 1); cout << buffer; 的冗余和低效使用,那么您当然可以这样做:

{{1}}

LIVE DEMO