函数
返回
编辑:正如Shafik Yaghmour指出的那样,How does strchr implementation work?有非常好的答案。
由于我的代码是C++,我将使用
然而,Mike Seymour的回答最适合这个问题。我甚至添加了一个更详细的答案来清楚地说明,因为
char* strrchr(const char *str, int ch)
会在str
(const char *
)中返回最后一个出现ch
的指针(char*
)。
因此,我们可以编写以下代码而无需进行任何强制转换:
#include <string.h>
int main()
{
const char CONSTSTR[] = "foo/bar/foobar.txt";
char *ptr = strrchr (CONSTSTR, '/');
*ptr++ = 'B';
*ptr++ = 'A';
*ptr++ = 'D';
}
返回
char*
而不是const char*
的优势是什么?编辑:正如Shafik Yaghmour指出的那样,How does strchr implementation work?有非常好的答案。
由于我的代码是C++,我将使用
<cstring>
而不是<string.h>
。谢谢你们的回答 ;-)然而,Mike Seymour的回答最适合这个问题。我甚至添加了一个更详细的答案来清楚地说明,因为
strrchr()
是一个C函数(不允许重载),声明适用于const和non-const字符串。因为strrchr()
可以用non-const字符串调用,返回的字符串也应该是non-const的。
c++
而不是c
,因此应该使用cstring
而不是string.h
。 </pedant> - BoBTFish<cstring>
提供了C无法提供的const-correct重载。 - Mike Seymour