欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺析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語言break和continue的語句用法

    C語言break和continue的語句用法

    這篇文章主要介紹了C語言break和continue的語句用法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • C語言中sizeof和strlen的區(qū)別詳解

    C語言中sizeof和strlen的區(qū)別詳解

    這篇文章主要介紹了C語言中sizeof和strlen的區(qū)別,文中有通過代碼示例和相關例題給大家介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • 基于curses庫實現(xiàn)彈球游戲

    基于curses庫實現(xiàn)彈球游戲

    這篇文章主要為大家詳細介紹了基于curses庫實現(xiàn)彈球游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C++?Qt開發(fā)之使用QUdpSocket實現(xiàn)組播通信

    C++?Qt開發(fā)之使用QUdpSocket實現(xiàn)組播通信

    Qt?是一個跨平臺C++圖形界面開發(fā)庫,利用Qt可以快速開發(fā)跨平臺窗體應用程序,本文將重點介紹如何運用QUdpSocket組件實現(xiàn)基于UDP的組播通信,感興趣的可以了解下
    2024-03-03
  • 淺談C++左值引用和右值引用

    淺談C++左值引用和右值引用

    這篇文章主要介紹了C++左值引用和右值引用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • OpenCV計算輪廓長度/周長和面積

    OpenCV計算輪廓長度/周長和面積

    這篇文章主要為大家詳細介紹了OpenCV計算輪廓長度/周長和面積,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C++實現(xiàn)LeetCode(128.求最長連續(xù)序列)

    C++實現(xiàn)LeetCode(128.求最長連續(xù)序列)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(128.求最長連續(xù)序列),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-07-07
  • C語言冒泡排序算實現(xiàn)代碼

    C語言冒泡排序算實現(xiàn)代碼

    本文主要介紹C語言冒泡排序算法,這里給大家舉例說明冒泡排序的思想,并附有代碼示例,有需要的小伙伴可以參考下
    2016-07-07
  • 數(shù)據(jù)結構之歸并排序的實例詳解

    數(shù)據(jù)結構之歸并排序的實例詳解

    這篇文章主要介紹了數(shù)據(jù)結構之歸并排序的實例詳解的相關資料,這里對歸并排序進行詳細介紹,需要的朋友可以參考下
    2017-08-08
  • C++實現(xiàn)LeetCode數(shù)組練習題

    C++實現(xiàn)LeetCode數(shù)組練習題

    這篇文章主要介紹了C++實現(xiàn)LeetCode的幾道數(shù)組練習題,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08

最新評論