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

C語(yǔ)言中strlen()函數(shù)的使用詳解

 更新時(shí)間:2024年02月01日 14:46:35   作者:不會(huì)算法的笨小孩  
strlen函數(shù)是用來(lái)求字符串長(zhǎng)度的函數(shù),這個(gè)函數(shù)遇到‘\0’就會(huì)停止,且這個(gè)長(zhǎng)度不包含‘\0’,這篇文章給大家介紹了C語(yǔ)言中strlen()函數(shù)的使用,感興趣的朋友一起看看吧

1、strlen函數(shù)的各個(gè)參數(shù)介紹

size_t  strlen (const char* str)

①函數(shù)名為strlen

②返回值類(lèi)型為size_t,這是一個(gè)無(wú)符號(hào)的類(lèi)型,可能是整型,也可能是長(zhǎng)整型。

③函數(shù)的參數(shù)是一個(gè)字符類(lèi)型的數(shù)組,這個(gè)數(shù)組用char*類(lèi)型來(lái)接收,且這個(gè)數(shù)組內(nèi)容不能被修改。

2、strlen函數(shù)的作用

strlen函數(shù)是用來(lái)求字符串長(zhǎng)度的函數(shù),這個(gè)函數(shù)遇到‘\0’就會(huì)停止,且這個(gè)長(zhǎng)度不包含‘\0’。

如,字符串“abcd\0ef”,這個(gè)字符串的長(zhǎng)度為4,遇到'\0'之后就不再數(shù)了,且長(zhǎng)度不包含‘\0’。

3、易錯(cuò)處分析

①返回值類(lèi)型為無(wú)符號(hào)整數(shù),這就使得我們?cè)谑褂脮r(shí)會(huì)出現(xiàn)一種情況,見(jiàn)代碼如下:

#include<stdio.h>
#include<string.h>
int main()
{
	if (strlen("abc") - strlen("abcdef") >= 0)
		printf(">=\n");
	else
		printf("<\n");
	return 0;
}

通過(guò)代碼,我們可能覺(jué)得這個(gè)打印的是“<”,但是,strlen函數(shù)返回的是無(wú)符號(hào)整數(shù),無(wú)符號(hào)整數(shù)-無(wú)符號(hào)整數(shù)還是無(wú)符號(hào)整數(shù),無(wú)符號(hào)整數(shù)是永遠(yuǎn)>=0的,所以打印的會(huì)是">="。運(yùn)行結(jié)果如下:

4、模擬實(shí)現(xiàn)

①方法一:計(jì)數(shù)器

size_t my_strlen1(const char* ch)
{
	size_t count = 0;
	while (*ch)
	{
		count++;
		ch++;
	}
	return count;
}

②方法二:遞歸

size_t my_strlen2(const char* ch)
{
	if (*ch == '\0')
		return 0;
	return my_strlen2(ch + 1) + 1;
}

③方法三:指針-指針

size_t my_strlen3(const char* ch)
{
	char* p = ch;
	while (*p)
	{
		p++;
	}
	return p - ch;
}

到此這篇關(guān)于C語(yǔ)言中strlen()函數(shù)的使用詳解的文章就介紹到這了,更多相關(guān)C語(yǔ)言strlen()函數(shù)使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • VS2019 Nuget找不到包的問(wèn)題處理

    VS2019 Nuget找不到包的問(wèn)題處理

    這篇文章主要介紹了VS2019 Nuget找不到包的問(wèn)題處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • C語(yǔ)言詳解分析進(jìn)程控制中進(jìn)程終止的實(shí)現(xiàn)

    C語(yǔ)言詳解分析進(jìn)程控制中進(jìn)程終止的實(shí)現(xiàn)

    當(dāng)進(jìn)程完成執(zhí)行最后語(yǔ)句并且通過(guò)系統(tǒng)調(diào)用 exit() 請(qǐng)求操作系統(tǒng)刪除自身時(shí),進(jìn)程終止。這時(shí),進(jìn)程可以返回狀態(tài)值(通常為整數(shù))到父進(jìn)程(通過(guò)系統(tǒng)調(diào)用 wait())。所有進(jìn)程資源,如物理和虛擬內(nèi)存、打開(kāi)文件和 I/O 緩沖區(qū)等,會(huì)由操作系統(tǒng)釋放
    2022-08-08
  • 帶你粗略了解c++的最大乘積

    帶你粗略了解c++的最大乘積

    這篇文章主要為大家詳細(xì)介紹了C++的最大乘積,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能給你帶來(lái)幫助
    2021-08-08
  • Qt使用QSoundEffect類(lèi)實(shí)現(xiàn)播放音效或音樂(lè)

    Qt使用QSoundEffect類(lèi)實(shí)現(xiàn)播放音效或音樂(lè)

    這篇文章主要為大家詳細(xì)介紹了Qt如何使用QSoundEffect類(lèi)實(shí)現(xiàn)播放音效或音樂(lè)功能,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下
    2024-12-12
  • C語(yǔ)言中數(shù)組常用的一些排序算法小結(jié)

    C語(yǔ)言中數(shù)組常用的一些排序算法小結(jié)

    數(shù)組的排序方法有很多,效率也各不相同,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言中數(shù)組常用的一些排序算法的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • 淺談Qt實(shí)現(xiàn)HTTP的Get/Post請(qǐng)求

    淺談Qt實(shí)現(xiàn)HTTP的Get/Post請(qǐng)求

    本文主要介紹了淺談Qt實(shí)現(xiàn)HTTP的Get/Post請(qǐng)求,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C++學(xué)習(xí)之命名空間詳解

    C++學(xué)習(xí)之命名空間詳解

    C++中,命名空間(namespace)是一個(gè)重要的概念。命名空間可以為函數(shù)、變量、類(lèi)等定義作用域,避免與其他定義的名稱(chēng)發(fā)生沖突。下面我們就來(lái)了解一下如何使用C++命名空間,以及一些常見(jiàn)的操作吧
    2023-04-04
  • C++ string字符串的使用和簡(jiǎn)單模擬實(shí)現(xiàn)

    C++ string字符串的使用和簡(jiǎn)單模擬實(shí)現(xiàn)

    C語(yǔ)言中,字符串是以'\0'結(jié)尾的一些字符的集合,為了操作方便,C標(biāo)準(zhǔn)庫(kù)中提供了一些str系列的庫(kù)函數(shù),但是這些庫(kù)函數(shù)和字符串是分離的,本文給大家介紹了C++ string字符串的使用和簡(jiǎn)單模擬實(shí)現(xiàn),感興趣的朋友可以參考下
    2024-06-06
  • C語(yǔ)言switch語(yǔ)句詳解

    C語(yǔ)言switch語(yǔ)句詳解

    這篇文章主要為大家介紹了C語(yǔ)言switch語(yǔ)句,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • C/C++如何獲取當(dāng)前系統(tǒng)時(shí)間的實(shí)例詳解

    C/C++如何獲取當(dāng)前系統(tǒng)時(shí)間的實(shí)例詳解

    這篇文章主要介紹了 C/C++如何獲取當(dāng)前系統(tǒng)時(shí)間的實(shí)例詳解的相關(guān)資料,這里提供了幾種實(shí)現(xiàn)方法,幫助大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-08-08

最新評(píng)論