[hjl@gnu-4 tmp]$ cat x.c #include <string.h> char *foo(const char *filename) { char *splitpos; splitpos = strrchr(filename, '/'); return splitpos; } [hjl@gnu-4 tmp]$ g++ x.c x.c: In function \u2018char* foo(const char*)\u2019: x.c:6:35: error: invalid conversion from \u2018const char*\u2019 to \u2018char*\u2019 [hjl@gnu-4 tmp]$
THat is completely intentional, C++ says that strchr etc. is const char *strchr (const char *, int); char *strchr (char *, int);