1. 程式人生 > >C語言字元和字串處理函式(二)strchr,strpbrk,strstr

C語言字元和字串處理函式(二)strchr,strpbrk,strstr

查詢字元或者字串

查詢一個字元:和和和strchr()。

函式返回一個指向STRCH首次出現的位置,當沒有在STR中找CH就報道檢視NULL。

查詢任意字元:strpbrk() 

函式返回一個指標,它指向字串STR2任意字元在字串STR1首次出現的位置,如果不存在返回NULL。

查詢一個子串:的的的strstr() 

 函式返回一個指標,它指向字串str2中的中首次出現於字串STR1中的位置,如果沒有找到,返回NULL。

#include <string.h>
char *strchr( const char *str, int ch );
char *strpbrk( const char *str1, const char *str2 );
char *strstr( const char *str1, const char *str2 );

例子:

說明下,因為我用的電腦是64位的,所以指標型別長度為8位元組64位的

#include <stdio.h>
#include <string.h>

int main()
{
	char *str1 = "hello world";
	char *str2 = "你好 中國!";
	char ch = 'w';
	char *str3 = "del";
	char *str4 = "rld";

	printf("該機器int位元組數是%lu,指標位元組數%lu\n",sizeof(int),sizeof(str1));
	
	printf("%c是str1第%lu字元\n",ch,strchr(str1,ch) - str1);
	printf("%s任一字元在str1最開始出現的是第%c字元\n",str3,*strpbrk(str1,str3));
	printf("%s字串在str1最開始出現的是字串%s\n",str4,strstr(str1,str4));
	
	return 0;
}

總結:

strchr是查詢一個字元在字串中是否有。

strpbrk是查詢一個字串中的任一字元在字串中是否有,要查詢的字元沒有順序

strstr是查詢一個字串在要查詢的字串中是否有,字元的順序固定不變