淺析C++中strlen函數(shù)的使用與模擬實現(xiàn)strlen的方法
更新時間:2021年03月05日 10:17:38 作者:S for N
這篇文章主要介紹了strlen函數(shù)的使用與模擬實現(xiàn)strlen的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
strlen函數(shù)的簡單運用與模擬實現(xiàn) strlen函數(shù)的簡單使用strlen函數(shù)的三種模擬實現(xiàn)使用臨時變量的方法使用函數(shù)遞歸的方法使用指針相減的方法
strlen函數(shù)的簡單使用
strlen函數(shù)是用來計算字符串長度的一個函數(shù),返回類型是size_t
#include<stdio.h> #include<string.h> int main() { char arr[] = "hello world"; size_t;//返回值是size_t unsigned int int len = strlen(arr); printf("len=%d\n", len); return 0; }
下面就是對于返回值類型是size_t的一個很形象的例子
int main() { const char* p1 = "abc"; const char* p2 = "adbcdef"; if (strlen(p1) - strlen(p2) > 0) //因為返回值是無符號數(shù),所以沒有負數(shù) { printf("hehe"); } else { printf("haha"); } return 0; }
strlen函數(shù)的三種模擬實現(xiàn)
使用臨時變量的方法
#include<stdio.h> #include<assert.h> //模擬實現(xiàn)strlen size_t my_strlen(const char* str) { int count = 0;//計數(shù)器 assert(str != NULL); //斷言不是空指針,如果沒有這步,當是空指針的時候可能會崩潰 while (*str != '\0') { count++; str++; } return count; } int main() { char arr[] = "hello"; int len = my_strlen(arr); printf("%d\n", len); return 0; }
使用函數(shù)遞歸的方法
#include<stdio.h> #include<assert.h> //不使用臨時變量 size_t my_strlen(const char* str) { assert(str != NULL); if (*str != '\0') { return 1 + my_strlen(str + 1); } else { return 0; } } int main() { char arr[] = "hello"; int len = my_strlen(arr); printf("%d\n", len); return 0; }
使用指針相減的方法
//指針相減的做法 size_t my_strlen(const char* str) { assert(str != NULL); const char* start = str; //str 不能初始化char類型,所以用const while (*str != '\0') { str++; } return str - start; } int main() { char arr[] = "hello"; int len = my_strlen(arr); printf("%d\n", len); return 0; }
到此這篇關于strlen函數(shù)的使用與模擬實現(xiàn)strlen的文章就介紹到這了,更多相關strlen函數(shù)模擬實現(xiàn)strlen內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
C++?Qt開發(fā)之使用QUdpSocket實現(xiàn)組播通信
Qt?是一個跨平臺C++圖形界面開發(fā)庫,利用Qt可以快速開發(fā)跨平臺窗體應用程序,本文將重點介紹如何運用QUdpSocket組件實現(xiàn)基于UDP的組播通信,感興趣的可以了解下2024-03-03C++實現(xiàn)LeetCode(128.求最長連續(xù)序列)
這篇文章主要介紹了C++實現(xiàn)LeetCode(128.求最長連續(xù)序列),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下2021-07-07