簡體   English   中英

如何獲得最后一筆?

[英]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;

現場演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM