99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

字符串操作函數(shù)模擬之番外篇-創(chuàng)新互聯(lián)

一、strchr()

成都創(chuàng)新互聯(lián)公司主要為客戶提供服務(wù)項(xiàng)目涵蓋了網(wǎng)頁(yè)視覺設(shè)計(jì)、VI標(biāo)志設(shè)計(jì)、成都全網(wǎng)營(yíng)銷、網(wǎng)站程序開發(fā)、HTML5響應(yīng)式重慶網(wǎng)站建設(shè)公司手機(jī)網(wǎng)站制作設(shè)計(jì)、微商城、網(wǎng)站托管及網(wǎng)站維護(hù)、WEB系統(tǒng)開發(fā)、域名注冊(cè)、國(guó)內(nèi)外服務(wù)器租用、視頻、平面設(shè)計(jì)、SEO優(yōu)化排名。設(shè)計(jì)、前端、后端三個(gè)建站步驟的完善服務(wù)體系。一人跟蹤測(cè)試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為成都VR全景行業(yè)客戶提供了網(wǎng)站維護(hù)服務(wù)。

 函數(shù)原型:char *strchr( const char *string, int c );

 strchr() 函數(shù)查找字符在指定字符串中首次出現(xiàn)的位置,如果找到,就返回指定字符在已知字符串中最后一次開始出現(xiàn)的位置,找不到就返回NULL。例如:已知字符串“abdedef”,該函數(shù)返回“dedef”

#include<stdio.h>
#include<assert.h>
#include<stdlib.h>

char *my_strchr(const char *str,int c)
{
	assert(str);
	while(*str)
	{
		if(*str == c)
			return (char *)str;         //找到后返回此時(shí)的位置
		str++;
	}
	return NULL;                        //沒找到
}

int main()
{
	char *str = "abcdcdef";
	char *ret = my_strchr(str,'d');
	printf("%s\n",ret);
	system("pause");
	return 0;
}

二、strrchr()

 函數(shù)原型:char *strrchr( const char *string, int c );

 strrchr()函數(shù)正好與strchr()函數(shù)相反,此函數(shù)是查找字符在指定字符串中從正面開始數(shù)最后一次出現(xiàn)的位置,若找到,就返回最后一次開始出現(xiàn)的位置,否則返回NULL。還用上邊的字符串為例,該函數(shù)返回的是結(jié)果是“def”

下面看三種實(shí)現(xiàn)方法:

1.從正面數(shù),保存每個(gè)位置,則最后一次找到的即為最后一次出現(xiàn)的字符

char *my_strrchr(const char *str,int c)     
{
	const char *p = NULL;
	assert(str);
	while(*str)
	{
		
		if(*str == c)
		{
			p = str;            //保存每一次出現(xiàn)該字符的地址
		}
		str++;
	}
	if(*str != '\0')
		return (char *)p;
	return NULL;
}

2.從后面數(shù),遇到的第一個(gè)字符即為最后一次出現(xiàn)的字符

char *my_strrchr(const char *str,int ch)
{
	const char *start = str;                //將指定字符串首地址保存
	assert(str);
	while(*str)
	{
		str++;
	}
	//str--;
	//while(*str--)
	//{
	//	;
	//}
	while((str >= start) && (*str != ch))
	{
		str--;
	}
	if(*str == ch)
		return (char *)str;
	return NULL;
}

3.調(diào)用strchr函數(shù)

char *my_strrchr(const char *str,int ch)
{
	const char *cur = NULL;
	const char *last = NULL;
	assert(str);
	while(cur = strchr(str,ch))
	{
		last = cur;       //保存每一次找到的位置
		str = cur+1;
	}
	return (char *)last;
}

三、strrstr()

  我們都知道在庫(kù)函數(shù)中有strstr(),它是查找自字符串的,但是類似于上邊,我們要是想實(shí)現(xiàn)一個(gè)函數(shù)來返回子字符串在指定字符串中最后一次出現(xiàn)的位置該怎么做呢?!

下面看兩種實(shí)現(xiàn)方法:

1.從后向前找字符串(由于這種查找凡事不能再遇到'\0',所以不能以'\0'作為循環(huán)條件,而用字符串的長(zhǎng)度來控制循環(huán))

char *my_strrstr(const char *str,const char *substr,int len1,int len2)
{
	const char *l_start = str+len1-1;
	const char *end = substr+len2-1;
	assert(str);
	assert(substr);
	while(len1)
	{
		str = l_start;
		while((len2 != 1) && (*substr == *str))
		{
			str--;
			substr--;
			len2--;
		}
		l_start = str;
		if(len2 == 1)
			return (char *)l_start;
		if(*str != *substr)
		{
			l_start = l_start-1;
			substr = end;
		}
		len1--;
	}
	return NULL;
}	

顯然這種方法有點(diǎn)麻煩,而且傳參太多。那么就有第二種實(shí)現(xiàn)方法了。

2.同實(shí)現(xiàn)strrchr一樣,調(diào)用strstr函數(shù)

char *my_strrstr(const char *str,const char *substr)
{
	const char *last = NULL;
	const char *cur = NULL;
	assert(str);
	if(!*substr)
		return (char *)substr;
	while(cur = strstr(str,substr))
	{
		last = cur;            //每次保存找到的字符串的首位置
		str = last+1;          //使str指向下一位開始尋找
	}
	return (char *)last;
}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前題目:字符串操作函數(shù)模擬之番外篇-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://www.yijiale78.com/article46/dgedeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化定制開發(fā)網(wǎng)站維護(hù)網(wǎng)站設(shè)計(jì)營(yíng)銷型網(wǎng)站建設(shè)用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)