There is a conflict between "info" documentation and declarations for str* functions info: Function: char * strchr (const char *STRING, int C) ... string.h: extern char *strchr (char *__s, int __c) at least strchr and strrchr are affected (the "const" modifier was dropped) versions: glibc-devel-2.9.90-3.x86_64
You are reading the header incorrectly. The info documentation as well as man pages correctly document the prototype for C. For C++ this is different, strchr etc. are overloaded, as required by ISO C++ standard.
Oh, you are right. But probably a note could be added into the docs about this C++ incompatibility.