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)文章
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
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é)
數(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)求,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
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/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

