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