【发布时间】:2015-04-23 14:49:19
【问题描述】:
标准函数strstr用于查找字符串中子字符串的位置。函数的两个参数都是const char *类型,但返回类型是char *。
我想知道一个标准函数是如何实现违反 const 正确性的。
【问题讨论】:
-
你包括cstring,而不是string.h?否则,您使用的是 C 版本 - 天知道他们在做什么。如果第一个参数也是非
constchar*,则 C++std::strstr版本仅返回char*。见here。 (抱歉 - 刚刚也注意到了 C 标记……您实际使用的是哪种语言?) -
@TonyD C 版本是
char * strstr ( const char *, const char * ); -
注意C++中two overloads of strstr有一个带const char*参数,一个带普通char*,返回值如下。
-
如果问题不是关于差异、相似之处、编写可在两种语言中运行的代码或在另一种语言中使用一种语言的函数时,请不要将 C 和 C++ 标记用于同一问题。跨度>