C語言中strlen()函數(shù)的使用詳解
1、strlen函數(shù)的各個參數(shù)介紹
size_t strlen (const char* str)
①函數(shù)名為strlen
②返回值類型為size_t,這是一個無符號的類型,可能是整型,也可能是長整型。
③函數(shù)的參數(shù)是一個字符類型的數(shù)組,這個數(shù)組用char*類型來接收,且這個數(shù)組內(nèi)容不能被修改。
2、strlen函數(shù)的作用
strlen函數(shù)是用來求字符串長度的函數(shù),這個函數(shù)遇到‘\0’就會停止,且這個長度不包含‘\0’。
如,字符串“abcd\0ef”,這個字符串的長度為4,遇到'\0'之后就不再數(shù)了,且長度不包含‘\0’。
3、易錯處分析
①返回值類型為無符號整數(shù),這就使得我們在使用時會出現(xiàn)一種情況,見代碼如下:
#include<stdio.h> #include<string.h> int main() { if (strlen("abc") - strlen("abcdef") >= 0) printf(">=\n"); else printf("<\n"); return 0; }
通過代碼,我們可能覺得這個打印的是“<”,但是,strlen函數(shù)返回的是無符號整數(shù),無符號整數(shù)-無符號整數(shù)還是無符號整數(shù),無符號整數(shù)是永遠>=0的,所以打印的會是">="。運行結(jié)果如下:
4、模擬實現(xiàn)
①方法一:計數(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語言中strlen()函數(shù)的使用詳解的文章就介紹到這了,更多相關(guān)C語言strlen()函數(shù)使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Qt使用QSoundEffect類實現(xiàn)播放音效或音樂
這篇文章主要為大家詳細介紹了Qt如何使用QSoundEffect類實現(xiàn)播放音效或音樂功能,文中的示例代碼講解詳細,有需要的小伙伴可以參考一下2024-12-12