欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言自定義實現(xiàn)strlen函數(shù)的3種方法總結(jié)

 更新時間:2023年08月14日 09:12:56   作者:蘇貝貝  
這篇文章帶大家了解C語言中自定義實現(xiàn)strlen函數(shù)的3種方法,計數(shù)器,遞歸以及指針,這三種方法通過代碼示例介紹的非常詳細,需要的朋友可以參考下

在自定義實現(xiàn)strlen函數(shù)之前,我們簡單的介紹一下strlen函數(shù)。strlen的功能就是求字符串長度。它只能作用于字符串,是C語言中的庫函數(shù),使用時要引用 < string.h> 這個頭文件。每個字符串結(jié)尾處都隱藏有 ‘\0’ ,它是字符串的結(jié)束標志,所以我們在用strlen函數(shù)求字符串長度時,遇見 ‘\0’ 時就停止讀取字符串,字符串長度為 ‘\0’ 之前的字符個數(shù),不包括 ‘\0’ 。

簡單介紹strlen函數(shù)之后,讓我們開始正文

1.計數(shù)器

這是3種方法里面最簡單的一種,只用將數(shù)組作為函數(shù)參數(shù),再用計數(shù)器i充當(dāng)數(shù)組下標,若arr[i]不是轉(zhuǎn)義字符 ‘\0’ ,i++;直到為 ‘\0’ 時,返回計數(shù)器i

int my_strlen(char arr[])
{
	int i = 0;
	while (arr[i] != '\0')
	{
		i++;
	}
	return i;
}
int main()
{
	char arr[] = "abcdefg";//abcdefg\0
	int len = my_strlen(arr);
	printf("%d", len);
	return 0;
}
//7

2.遞歸(不用創(chuàng)造臨時變量)

將數(shù)組作為函數(shù)實參,實際上傳過去的是數(shù)組首元素地址,用指針接收變量str接收,對str進行解引用操作找到str指向的字符,若該字符為 ‘\0’ ,則返回0;否則返回1+my_strlen(str + 1),再進入my_strlen函數(shù)時,str指向下一位,繼續(xù)上述判斷。

例如:若下面代碼中char arr[ ]=“ab”,將數(shù)組名arr作為函數(shù)實參,用指針str接收,此時str指向數(shù)組首元素即字符a。對指針str進行解應(yīng)用str=a,a!= ‘\0’ ,所以函數(shù)返回1+my_strlen(str + 1),再進行下一次遞歸, 此時str指向下一位字符b。對指針str進行解應(yīng)用str=b,b!= ‘\0’ ,所以函數(shù)返回1+my_strlen(str+1),再進行下一次遞歸, 此時str指向下一位字符 ‘\0’ 。對指針str進行解應(yīng)用*str= ‘\0’ ,所以函數(shù)返回0,接著返回上一次遞歸,此時str指向字符b,my_strlen(str + 1) 的結(jié)果為0,所以1+my_strlen(str + 1)的結(jié)果=1并再將1返回上一次遞歸。此時str指向字符a,my_strlen(str + 1)的結(jié)果=1,所以1+my_strlen(str + 1)結(jié)果=2,將2作為最后的值返回。

int my_strlen(char* str)
{
	if (*str == '\0')
		return 0;
	else
		return 1 + my_strlen(str + 1);
}
int main()
{
	char arr[] = "abcdefg";//abcdefg\0
	int len = my_strlen(arr);
	printf("%d", len);
	return 0;
}

3.指針(指針-指針的差值的絕對值是它們之間的元素個數(shù))

思想:只要最后指針str指向的是 ‘\0’ ,指針start指向的是數(shù)組首元素a,那么str - start就是字符串長度
創(chuàng)建指針變量start存放數(shù)組首元素地址(str就是數(shù)組首元素地址),再用while循環(huán)使得str最后指向 ‘\0’ ,返回兩指針的差值

int my_strlen(char* str)
{
	char* start = str;
	while (*str != '\0')
	{
		str++;
	}
	return str - start;
}
int main()
{
	char arr[] = "abcdefg";
	int len = my_strlen(arr);
	printf("%d", len);
	return 0;
}

到此這篇關(guān)于C語言自定義實現(xiàn)strlen函數(shù)的3種方法總結(jié)的文章就介紹到這了,更多相關(guān)C語言實現(xiàn)strlen函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • OpenGL畫bezier曲線

    OpenGL畫bezier曲線

    這篇文章主要為大家詳細介紹了OpenGL畫bezier曲線,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C語言fprintf()函數(shù)和fscanf()函數(shù)的具體使用

    C語言fprintf()函數(shù)和fscanf()函數(shù)的具體使用

    本文主要介紹了C語言fprintf()函數(shù)和fscanf()函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C語言學(xué)生信息管理系統(tǒng)設(shè)計與實現(xiàn)

    C語言學(xué)生信息管理系統(tǒng)設(shè)計與實現(xiàn)

    這篇文章主要為大家詳細介紹了C語言學(xué)生信息管理系統(tǒng)設(shè)計與實現(xiàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C++ vector的介紹及常見功能實現(xiàn)

    C++ vector的介紹及常見功能實現(xiàn)

    這篇文章主要介紹了C++ vector的介紹及模擬實現(xiàn),vector在實際中非常的重要,但在實際中我們只要熟悉常見的接口就可以了,最重要的是理解他的底層原理,要能夠自己模擬實現(xiàn)出一個簡單的vector,本文結(jié)合示例代碼給大家詳細介紹,需要的朋友可以參考下
    2023-05-05
  • Opencv?視頻讀取與寫入的實現(xiàn)示例

    Opencv?視頻讀取與寫入的實現(xiàn)示例

    本文將介紹如何使用OpenCV進行視頻讀寫。通過閱讀本文,您將了解如何讀取視頻文件、處理視頻幀、寫入視頻文件等操作,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • C語言用遞歸函數(shù)對素數(shù)進行判斷流程

    C語言用遞歸函數(shù)對素數(shù)進行判斷流程

    素數(shù)判斷是編程語言學(xué)習(xí)過程中一個老生常談的話題,而它的實現(xiàn)也有多種算法,包括經(jīng)典的試除法(以及試除法的幾種優(yōu)化),進階的素數(shù)表篩選法,埃拉托斯特尼篩法和歐拉篩法(以及它們的優(yōu)化)等。對以上算法感興趣的朋友們,不妨搜索“素數(shù)判斷的N種境界”來學(xué)習(xí)了解
    2022-09-09
  • C++中的Reactor原理與實現(xiàn)

    C++中的Reactor原理與實現(xiàn)

    reactor設(shè)計模式是event-driven?architecture的一種實現(xiàn)方式,處理多個客戶端并發(fā)的向服務(wù)端請求服務(wù)的場景,每種服務(wù)在服務(wù)端可能由多個方法組成,這篇文章主要介紹了Reactor原理與實現(xiàn),需要的朋友可以參考下
    2022-07-07
  • C++詳細實現(xiàn)完整圖書管理功能

    C++詳細實現(xiàn)完整圖書管理功能

    隨著網(wǎng)絡(luò)技術(shù)的高速發(fā)展,計算機應(yīng)用的普及,利用計算機對圖書館的日常工作進行管理勢在必行,本篇文章涵蓋一個圖書管理系統(tǒng)的全部實現(xiàn)代碼,大家可以查缺補漏,提升水平
    2022-05-05
  • C語言編程中對目錄進行基本的打開關(guān)閉和讀取操作詳解

    C語言編程中對目錄進行基本的打開關(guān)閉和讀取操作詳解

    這篇文章主要介紹了C語言編程中對目錄進行基本的打開關(guān)閉和讀取操作,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • C語言實現(xiàn)旅游景點咨詢系統(tǒng)

    C語言實現(xiàn)旅游景點咨詢系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)旅游景點咨詢系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12

最新評論