回答
您可以使用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