strchr() 用來查找某字符在字符串中首次出現的位置,其原型為:
char * strchr (const char *str, int c);
【參數】str 為要查找的字符串,c 為要查找的字符。
strchr() 將會找出 str 字符串中第一次出現的字符 c 的地址,然后將該地址返回。
注意:字符串 str 的結束標志 NUL 也會被納入檢索范圍,所以 str 的組后一個字符也可以被定位。
【返回值】如果找到指定的字符則返回該字符所在地址,否則返回 NULL。
返回的地址是字符串在內存中隨機分配的地址再加上你所搜索的字符在字符串位置。設字符在字符串中首次出現的位置為 i,那么返回的地址可以理解為 str + i。
提示:如果希望查找某字符在字符串中最后一次出現的位置,可以使用 strrchr() 函數。
【實例】查找字符5首次出現的位置。
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ char *s = "0123456789012345678901234567890"; char *p,*q; unsigned char tmp; p = strchr(s, '5'); printf("原來的字符串:%s\n", s); printf("5之后的字符串:%s\n", p); tmp = (unsigned char)(strchr(s, '5')-s); q = (tmp > 0)?strndup(s, tmp):strdup(s); printf("5之前的字符串:%s\n", q); return 0; }運行結果:
book@ubuntu:/home/linux_c/has_arg$ ./strchr1
原來的字符串:0123456789012345678901234567890
5之后的字符串:56789012345678901234567890
5之前的字符串:01234