ssi*_*ice 15 c string standard-library
我在C中做了一些需要使用字符串的东西(就像大多数程序一样).
查看联机帮助页,我发现,在字符串(3)处:
概要
Run Code Online (Sandbox Code Playgroud)#include <strings.h> char * index(const char *s, int c) (...) #include <string.h> char * strchr(const char *s, int c)
所以我好奇地看着strchr(3)和index(3)......
我发现两者都做到了以下几点:
strchr()/ index()函数定位s指向的字符串中第一次出现的c.终止空字符被认为是字符串的一部分; 因此,如果c为'\ 0',则函数定位终止'\ 0'.
因此,该联机帮助页基本上是一个复制和粘贴.
此外,我认为,由于一些混淆的必要性,第二个参数有类型int,但实际上是一个char.我想我没有错,但任何人都可以向我解释为什么它是一个int,而不是一个char?
如果它们都是相同的,哪一个在版本之间更兼容,如果不兼容,哪个区别?
Jam*_*lis 23
strchr()是C标准库的一部分. index()是一个现已弃用的POSIX函数. POSIX规范建议实现index()为扩展为调用的宏strchar().
由于index()在POSIX中已弃用,而不是C标准库的一部分,因此您应该使用strchr().
第二个参数是类型,int因为在C中,字符常量(如'a')是类型int.