最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

實(shí)現(xiàn)C語(yǔ)言常用字符串庫(kù)函數(shù)

 更新時(shí)間:2021年11月17日 15:00:35   作者:尖兵果子  
這篇文章主要為大家介紹了如何實(shí)現(xiàn)C語(yǔ)言常用字符串庫(kù)函數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助

strlen

數(shù)組長(zhǎng)度的計(jì)算是通過(guò)strlen來(lái)的,它的作用就是判斷給定的數(shù)組元素個(gè)數(shù),直到碰到\0結(jié)束

函數(shù)原型

size_t strlen ( const char * str );

廢話少說(shuō),直接上代碼

int my_strlen(char *str)
{
	char* ch=str;
	int count=0;
	while(*ch!='\0')
	{
		count++;
		ch++;
	}
	return count;
}

但考慮到安全性,因?yàn)榍箝L(zhǎng)度并不會(huì)改變?cè)醋址?,所以加上const修飾char,保證該字符串的內(nèi)容不能被修改,但是可以改變指向

int my_strlen(const char *str)
{
	char* ch=str;
	int count=0;
	while(*ch!='\0')
	{
		count++;
		ch++;
	}
	return count;
}

strcpy

strcpy是將一個(gè)字符串含\0整體拷貝到另一個(gè)字符串中

原型為

char * strcpy ( char * destination, const char * source );
void my_strcpy(char* dest,const char *src)
{
	char * ch=src;
	while(*ch!='\0')
	{
		*dest=*ch;
		dest++;
		ch++;
	}
	*dest='\0';
}

同理不改變?cè)址?,所以加上const修飾。在最后記得手動(dòng)給目的字符串加上\0,這樣才能保證輸出正確

strcat

原型

char * strcat ( char * destination, const char * source );
void my_strcat(char* dest,const char *src)
{
	char * ch=dest;
	while(*ch!='\0')ch++;
	while(*src!='\0')
	{
		*ch=*src;
		ch++;
		src++;
	}
	*ch='\0';
}

先遍歷跑完目的字符串,接著再將原字符串所指的值一一賦給目的字符串.而因?yàn)槭前言釉谀康淖址螅阅康淖址銐虼?/p>

strcmp

原型

int strcmp ( const char * str1, const char * str2 );
int my_strcmp(const char* str1,const char *str2)
{
	assert(str1);
	assert(str2);
	char * s1=str1;
	char * s2=str2;
	while(*s1==*s2)
	{
		if(*s1=='\0')
		{
			return 0;
		}
		s1++;
		s2++;
	}
	if(*s1>*s2)
	{
		return 1;
	}
	else
	{
		return -1;
	}
}



上面代碼最后可以簡(jiǎn)化為return *s1-*s2,不過(guò)主函數(shù)里要相應(yīng)更改了

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

最新評(píng)論

聂拉木县| 两当县| 石狮市| 保定市| 华蓥市| 封开县| 齐齐哈尔市| 名山县| 井陉县| 通江县| 科尔| 南靖县| 定州市| 江川县| 千阳县| 廉江市| 淳化县| 武乡县| 乌兰察布市| 剑河县| 黄浦区| 巴彦县| 开封市| 灵璧县| 苗栗县| 清涧县| 赤峰市| 扶风县| 开封县| 富蕴县| 社旗县| 介休市| 鹤峰县| 东辽县| 五华县| 无极县| 佳木斯市| 阳西县| 察雅县| 石楼县| 沾益县|