簡體   English   中英

獲取C中字符串的最后一個標記

[英]get the last token of a string in C

我想要做的是給出一個輸入字符串,我知道它的大小或標記的數量,能夠打印它的最后一個標記。

例如:

char* s = "some/very/big/string";
char* token;

const char delimiter[2] = "/";

token = strtok(s, delimiter);

while (token != NULL) {
    printf("%s\n", token);
    token = strtok(NULL, delimiter);
}

return token;

我希望我的回歸

但我得到的是(null)。 任何解決方法? 我在網上搜索過,似乎無法找到答案。 至少對於C編程語言。

如果您對特定字符進行標記,即在示例中為'/' ,則根本不需要對字符串進行標記:調用strrchr以查找最后一個'/'的位置,並將1添加到結果指針以跳過分隔符,像這樣:

char *s = "some/very/big/string";
char *last = strrchr(s, '/');
if (last != NULL) {
    printf("Last token: '%s'\n", last+1);
}

演示。

只需使用另一個變量來存儲最后一個令牌,然后再獲取null

char s[] = "some/very/big/string";
char * token, * last;
last = token = strtok(s, "/");
for (;(token = strtok(NULL, "/")) != NULL; last = token);
printf("%s\n", last);

暫無
暫無

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

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