C語言中求字符串長(zhǎng)度的函數(shù)的幾種實(shí)現(xiàn)方法
1.最常用的方法是創(chuàng)建一個(gè)計(jì)數(shù)器,判斷是否遇到‘\0',不是'\0'指針就往后加一。
int my_strlen(const char *str)
{
assert(str != NULL);
int count = 0;
while (*str != '\0')
{
count++;
str++;
}
return count;
}
2.不創(chuàng)建計(jì)數(shù)器,從前向后遍歷一遍,沒有遇到‘\0'就讓指針向后加一,找到最后一個(gè)字符,記下來地址,然后用最后一個(gè)字符的地址減去起始地址,就得到了字符串的長(zhǎng)度。
int my_strlen(const char *str)
{
char *end = str;
assert(str!=NULL);
assert(end!=NULL);
while (*end != '\0')
{
end++;
}
return end - str;
}
3.不創(chuàng)建計(jì)數(shù)器,遞歸實(shí)現(xiàn)。
int my_strlen(const char *str)
{
assert(str != NULL);
if (*str == '\0')
{
return 0;
}
else
{
return (1 + my_strlen(++str));
}
}
也可以寫成這樣:
int my_strlen(const char *str)
{
assert(str != NULL);
return (*str == '\0') ? 0 : (my_strlen(++str) + 1);
}
或者這樣:
int my_strlen(const char *str)
{
assert(str != NULL);
return (*str == '\0') ? 0 : (my_strlen(str+1) + 1);
}
這篇關(guān)于c語言中獲取字符串長(zhǎng)度的函數(shù)就介紹到這了,需要的朋友可以參考一下。
相關(guān)文章
Qt地圖自適應(yīng)拉伸的實(shí)現(xiàn)示例
最近需要寫一個(gè)程序,要是讓qt到程序自適應(yīng),本文主要介紹了Qt地圖自適應(yīng)拉伸的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
Qt實(shí)現(xiàn)日志文件的滾動(dòng)寫入
這篇文章主要為大家介紹了如何使用Qt實(shí)現(xiàn)日志文件的滾動(dòng)寫入功能,在日志文件達(dá)到10MB時(shí)創(chuàng)建新的日志文件,并且在總?cè)罩疚募笮∵_(dá)到10GB時(shí)開始覆蓋最早的日志文件,需要的可以參考下2024-11-11
詳解c++優(yōu)先隊(duì)列priority_queue的用法
本文詳細(xì)講解了c++優(yōu)先隊(duì)列priority_queue的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12
C語言報(bào)錯(cuò):Format String Vulnerability的多種解決方案
Format String Vulnerability(格式化字符串漏洞)是C語言中常見且嚴(yán)重的安全漏洞之一,它通常在程序使用不受信任的輸入作為格式化字符串時(shí)發(fā)生,本文將詳細(xì)介紹Format String Vulnerability的產(chǎn)生原因,提供多種解決方案,需要的朋友可以參考下2024-06-06
C語言實(shí)現(xiàn)食堂就餐管理系統(tǒng)(帶鏈表)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)食堂就餐管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
Visual C++程序設(shè)計(jì)中Windows GDI貼圖閃爍的解決方法
這篇文章主要介紹了Visual C++程序設(shè)計(jì)中Windows GDI貼圖閃爍的解決方法,分析了GDI貼圖閃爍的常見原因及其具體解決方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01
C語言中利用封裝好的函數(shù)實(shí)現(xiàn)英文字母的大小寫轉(zhuǎn)換
這篇文章主要介紹了C語言中利用封裝好的函數(shù)實(shí)現(xiàn)英文字母的大小寫轉(zhuǎn)換,需要的朋友可以參考下2017-10-10

