C語言strchr()函數:查找某字符在字符串中首次出現的位置
頭文件:#include <string.h>
strchr() 用來查找某字符在字符串中首次出現的位置,其原型為:
1
|
char * strchr ( const char *str, int c); |
【參數】str 為要查找的字符串,c 為要查找的字符。
strchr() 將會找出 str 字符串中第一次出現的字符 c 的地址,然后將該地址返回。
注意:字符串 str 的結束標志 NUL 也會被納入檢索范圍,所以 str 的組后一個字符也可以被定位。
【返回值】如果找到指定的字符則返回該字符所在地址,否則返回 NULL。
返回的地址是字符串在內存中隨機分配的地址再加上你所搜索的字符在字符串位置。設字符在字符串中首次出現的位置為 i,那么返回的地址可以理解為 str + i。
提示:如果希望查找某字符在字符串中最后一次出現的位置,可以使用 strrchr() 函數。
【實例】查找字符5首次出現的位置。
1
2
3
4
5
6
7
8
9
10
11
12
|
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ char *s = "0123456789012345678901234567890" ; char *p; p = strchr (s, '5' ); printf ( "%ld\n" , s); printf ( "%ld\n" , p); system ( "pause" ); return 0; } |
輸出結果:
1
2
|
12016464 12016469 |
C語言strrchr()函數:查找某字符在字符串中最后一次出現的位置
頭文件:#include <string.h>
strrchr() 函數用于查找某字符在字符串中最后一次出現的位置,其原型為:
1
|
char * strrchr ( const char *str, int c); |
【參數】str 為要查找的字符串,c 為要查找的字符。
strrchr() 將會找出 str 字符串中最后一次出現的字符 c 的地址,然后將該地址返回。
注意:字符串 str 的結束標志 NUL 也會被納入檢索范圍,所以 str 的組后一個字符也可以被定位。
【返回值】如果找到就返回該字符最后一次出現的位置,否則返回 NULL。
返回的地址是字符串在內存中隨機分配的地址再加上你所搜索的字符在字符串位置。設字符在字符串中首次出現的位置為 i,那么返回的地址可以理解為 str + i。
提示:如果希望查找某字符在字符串中第一次出現的位置,可以使用 strchr() 函數。
實例:查找字符5最后一次出現的位置。
1
2
3
4
5
6
7
8
9
10
11
12
|
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ char *s = "0123456789012345678901234567890" ; char *p; p = strrchr (s, '5' ); printf ( "%ld\n" , s); printf ( "%ld\n" , p); system ( "pause" ); return 0; } |
執行結果:
1
2
|
12999504 12999529 |