最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言中求字符串長度的函數的幾種實現方法

 更新時間:2018年08月05日 12:14:57   作者:ZWE7616175  
這篇文章主要介紹了C語言中求字符串長度的函數的幾種實現方法,需要的朋友可以參考下

1.最常用的方法是創(chuàng)建一個計數器,判斷是否遇到‘\0',不是'\0'指針就往后加一。

int my_strlen(const char *str)
{
	assert(str != NULL);
	int count = 0;
	while (*str != '\0')
	{
		count++;
		str++;
	}
	return count;
}

2.不創(chuàng)建計數器,從前向后遍歷一遍,沒有遇到‘\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)建計數器,遞歸實現。

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語言中獲取字符串長度的函數就介紹到這了,需要的朋友可以參考一下。

相關文章

  • Qt地圖自適應拉伸的實現示例

    Qt地圖自適應拉伸的實現示例

    最近需要寫一個程序,要是讓qt到程序自適應,本文主要介紹了Qt地圖自適應拉伸的實現示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Qt實現日志文件的滾動寫入

    Qt實現日志文件的滾動寫入

    這篇文章主要為大家介紹了如何使用Qt實現日志文件的滾動寫入功能,在日志文件達到10MB時創(chuàng)建新的日志文件,并且在總日志文件大小達到10GB時開始覆蓋最早的日志文件,需要的可以參考下
    2024-11-11
  • 詳解c++優(yōu)先隊列priority_queue的用法

    詳解c++優(yōu)先隊列priority_queue的用法

    本文詳細講解了c++優(yōu)先隊列priority_queue的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • 淺談C語言的變量和常量

    淺談C語言的變量和常量

    這篇文章主要為大家詳細介紹了C語言的變量和常量,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C語言報錯:Format String Vulnerability的多種解決方案

    C語言報錯:Format String Vulnerability的多種解決方案

    Format String Vulnerability(格式化字符串漏洞)是C語言中常見且嚴重的安全漏洞之一,它通常在程序使用不受信任的輸入作為格式化字符串時發(fā)生,本文將詳細介紹Format String Vulnerability的產生原因,提供多種解決方案,需要的朋友可以參考下
    2024-06-06
  • C語言實現食堂就餐管理系統(tǒng)(帶鏈表)

    C語言實現食堂就餐管理系統(tǒng)(帶鏈表)

    這篇文章主要為大家詳細介紹了C語言實現食堂就餐管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Visual C++程序設計中Windows GDI貼圖閃爍的解決方法

    Visual C++程序設計中Windows GDI貼圖閃爍的解決方法

    這篇文章主要介紹了Visual C++程序設計中Windows GDI貼圖閃爍的解決方法,分析了GDI貼圖閃爍的常見原因及其具體解決方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • C語言中利用封裝好的函數實現英文字母的大小寫轉換

    C語言中利用封裝好的函數實現英文字母的大小寫轉換

    這篇文章主要介紹了C語言中利用封裝好的函數實現英文字母的大小寫轉換,需要的朋友可以參考下
    2017-10-10
  • C++基于Boost庫實現命令行解析

    C++基于Boost庫實現命令行解析

    Boost庫中默認自帶了一個功能強大的命令行參數解析器,以往我都是自己實現參數解析的,今天偶爾發(fā)現這個好東西,就來總結一下參數解析的基本用法,該庫需要引入program_options.hpp頭文件,即可使用了
    2021-06-06
  • C++內嵌匯編示例詳解

    C++內嵌匯編示例詳解

    這篇文章主要介紹了C++內嵌匯編,本文的所有代碼是在我自己的VS2008中測試的,由于環(huán)境的差別,不能保證能在所有的編譯器上運行,需要的朋友可以參考下
    2022-01-01

最新評論

马鞍山市| 乌苏市| 巩留县| 鸡东县| 富阳市| 姜堰市| 拜泉县| 徐汇区| 清水河县| 锦屏县| 永嘉县| 苗栗县| 安新县| 儋州市| 诸暨市| 和政县| 赤水市| 蛟河市| 简阳市| 辽宁省| 彝良县| 莒南县| 冀州市| 桃江县| 嘉峪关市| 临沂市| 永平县| 凉城县| 鲁山县| 八宿县| 天镇县| 天等县| 山阳县| 马关县| 镇原县| 嵊州市| 邵武市| 海南省| 延安市| 安泽县| 海林市|