1.最常用的方法是創建一個計數器,判斷是否遇到‘/0',不是'/0'指針就往后加一。
int my_strlen(const char *str){ assert(str != NULL); int count = 0; while (*str != '/0') { count++; str++; } return count;}
2.不創建計數器,從前向后遍歷一遍,沒有遇到‘/0'就讓指針向后加一,找到最后一個字符,記下來地址,然后用最后一個字符的地址減去起始地址,就得到了字符串的長度。
int my_strlen(const char *str){ char *end = str; assert(str!=NULL); assert(end!=NULL); while (*end != '/0') { end++; } return end - str;}
3.不創建計數器,遞歸實現。
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語言中獲取字符串長度的函數就介紹到這了,需要的朋友可以參考一下。
新聞熱點
疑難解答