回答
您可以使用strrchr
:
const char * tld = strrchr("www.google.com", '.');
// tld now points to ".com"
不要忘記的情況下,檢查NULL
點不能被發現。還要注意,它不會返回一個新的字符串,只是一個指向原始字符串中最後發生的'.'
的指針。
爲什麼此頁面會說它返回第一個匹配項,而不是最後一個? http://www.tutorialspoint.com/ansi_c/c_strchr.htm – chuckfinley
您錯過了附加'r' – drahnr
「在str指向的字節字符串中查找ch(在轉換爲char後)**最後一次出現**。 「它對我說...你確定你不在'strchr'的頁面上嗎? – Kninnug
您可以使用strtok
如下
char str[] ="www.google.com";
char *token;
token = strtok (str,".");
char *lastToken ;
while (token != NULL)
{
lastToken = token ;
token = strtok (NULL, ".");
}
printf("last token - %s",lastToken);
無效,因爲我必須經歷所有元素才能達到目的? – chuckfinley
這只是一種做法..您也可以嘗試使用@kninnug建議的strrchr – Subbu
我想我會親自做這樣的事情,和使用任何功能(跳過雖然strrchr
一些版本實際上可能以這種方式工作,我不認爲他們必然保證):
char *findlast(char *str)
{ char *c = str, p = NULL; // assuming str is your input string
while (*c)
{ if (*c == '.')
p = c;
++c;
}
if (p)
{ // p points to the last occurrence of '.'
if (*(p+1)) // '.' is not last character
return p+1
else
// not sure what you want here - p+1 points to NULL and would be semantically
// correct, but basically returns a 0-length string; return NULL might be better
// for some use cases...
}
else
{ // p is NULL, meaning '.' did not exist in str
return p;
}
}
- 1. 在分割字符串時獲取元素的最後部分
- 2. 字符串分割到一個字符串數組的元素
- 3. 字符串分割到2個元素
- 4. 字符串分割並獲得第一個和最後出現
- 5. 分割字符串以用於UI選擇元素
- 6. 提取分割字符串的列表中的最後一個元素
- 7. 分割字符串,然後輸出每個元素的第一個字符
- 8. 分割Python字符串中的最後一個分隔符?
- 9. 分割一個字符串,然後按字符分割
- 10. Objective-C的分割字符串,並得到最後一個項目
- 11. 分割一個字符串,但保留我分裂的元素
- 12. 分割的字符串,並提取各個元素
- 13. 標識符後分割C字符串
- 14. swift:如何分割一個字符串並刪除第一個元素?
- 15. 用strtok分割一個C字符串
- 16. 分割字符串與元素
- 17. 字符串分割到重複元素
- 18. 通過它的類部分字符串選擇一個元素
- 19. C#字符串數組替換最後一個元素
- 20. 谷歌電子表格:分割字符串,返回最後N個元素
- 21. 分割一個字符串
- 22. 分割字符串選擇上空間
- 23. 如何拆分字符串,刪除最後一個元素並返回到Java?
- 24. 谷歌電子表格:拆分字符串,並獲得最後一個元素
- 25. SASS從最後一個元素中選擇最後一個元素
- 26. 分割元素由字符
- 27. x選項卡後分割字符串
- 28. Matlab:在最後一個字符處分割字符串的最快方法
- 29. 分割字符串並存儲在一個新的字符串
- 30. 在jquery中用連字符分割字符串後獲取最後一個值?
@快速再次閱讀問題。我正在尋找最有效的方法。 – chuckfinley