index函数
函数定义:
#include<strings.h> char *index(const char *s, int c);
函数说明:
找出参数s字符串中第一个出现参数c的地址,然后将该字符串出现的地址返回。字符串结束字符(NULL)也视为字符串的一部分。
返回值:
如果找到指定的字符,则返回字符所在地址,否则返回NULL
实例:
/*** index.c ***/ #include<stdio.h> #include<strings.h> int main() { char *s = "abcdef1234567abcdef"; char *p = NULL; p = index(s, 'b'); printf("%s ",p); return 0; }
运行结果:
strtoul函数
函数原型:
#include<stdlib.h> unsigned long int strtoul(const char *nptr, char **endptr, int base); unsigned long long int strtoull(const char *nptr, char **endptr,int base);
参数介绍:
nptr: 字符串起始位置
endptr: 返回字符串有效数字的结尾地址。如123456fe789,则返回f的地址。
base: 转化基数。范围2~36,或0代表nptr采用的进制方式。
功能描述:
把输入的字符串转换成数字,该函数会扫描参数nptr字符串,跳过签过的空白字符(例如空格,tab键,可以通过isspace()函数来检测),知道遇到数字或正负符号才开始转换,在遇到非数字或字符串结束时(’ ’)结束转换,并将结果返回。
注意:
当 base 的值为 0 时,默认采用 10 进制转换,但如果遇到 '0x' / '0X' 前置字符则会使用 16 进制转换,遇到 '0' 前置字符则会使用 8 进制转换。
若 endptr 不为NULL,则会将遇到的不符合条件而终止的字符指针由 endptr 传回;若 endptr 为 NULL,则表示该参数无效,或不使用该参数。
实例1:
输入字符串,base值为2,二进制转换。
/*** strtoul_base2.c ***/ #include<stdio.h> #include<stdlib.h> int main() { char buffer[256]; unsigned long lu; char *endptr; while(1) { printf("Enter an unsigned number: "); fgets(buffer, 256, stdin); lu = strtoul(buffer, &endptr, 2); printf("Value entered:%lu, the address of first invalid character is %d, invalid characer = %s ", lu,endptr,endptr); } return 0; }