C語言中求字符串長度的函數(shù)的幾種實現(xiàn)方法
1.最常用的方法是創(chuàng)建一個計數(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)建計數(shù)器,從前向后遍歷一遍,沒有遇到‘\0'就讓指針向后加一,找到最后一個字符,記下來地址,然后用最后一個字符的地址減去起始地址,就得到了字符串的長度。
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)建計數(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);
}
這篇關于c語言中獲取字符串長度的函數(shù)就介紹到這了,需要的朋友可以參考一下。
相關文章
詳解c++優(yōu)先隊列priority_queue的用法
本文詳細講解了c++優(yōu)先隊列priority_queue的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12
C語言報錯:Format String Vulnerability的多種解決方案
Format String Vulnerability(格式化字符串漏洞)是C語言中常見且嚴重的安全漏洞之一,它通常在程序使用不受信任的輸入作為格式化字符串時發(fā)生,本文將詳細介紹Format String Vulnerability的產生原因,提供多種解決方案,需要的朋友可以參考下2024-06-06
C語言實現(xiàn)食堂就餐管理系統(tǒng)(帶鏈表)
這篇文章主要為大家詳細介紹了C語言實現(xiàn)食堂就餐管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11
Visual C++程序設計中Windows GDI貼圖閃爍的解決方法
這篇文章主要介紹了Visual C++程序設計中Windows GDI貼圖閃爍的解決方法,分析了GDI貼圖閃爍的常見原因及其具體解決方法,具有一定參考借鑒價值,需要的朋友可以參考下2015-01-01
C語言中利用封裝好的函數(shù)實現(xiàn)英文字母的大小寫轉換
這篇文章主要介紹了C語言中利用封裝好的函數(shù)實現(xiàn)英文字母的大小寫轉換,需要的朋友可以參考下2017-10-10

