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

C語言中求字符串長(zhǎng)度的函數(shù)的幾種實(shí)現(xiàn)方法

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

1.最常用的方法是創(chuàng)建一個(gè)計(jì)數(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)建計(jì)數(shù)器,從前向后遍歷一遍,沒有遇到‘\0'就讓指針向后加一,找到最后一個(gè)字符,記下來地址,然后用最后一個(gè)字符的地址減去起始地址,就得到了字符串的長(zhǎng)度。

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)建計(jì)數(shù)器,遞歸實(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);
}

這篇關(guān)于c語言中獲取字符串長(zhǎng)度的函數(shù)就介紹到這了,需要的朋友可以參考一下。

相關(guān)文章

  • Qt地圖自適應(yīng)拉伸的實(shí)現(xiàn)示例

    Qt地圖自適應(yīng)拉伸的實(shí)現(xiàn)示例

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

    Qt實(shí)現(xiàn)日志文件的滾動(dòng)寫入

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

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

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

    淺談C語言的變量和常量

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

    C語言報(bào)錯(cuò):Format String Vulnerability的多種解決方案

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

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

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

    Visual C++程序設(shè)計(jì)中Windows GDI貼圖閃爍的解決方法

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

    C語言中利用封裝好的函數(shù)實(shí)現(xiàn)英文字母的大小寫轉(zhuǎn)換

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

    C++基于Boost庫實(shí)現(xiàn)命令行解析

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

    C++內(nèi)嵌匯編示例詳解

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

最新評(píng)論

利川市| 都昌县| 景东| 蓬溪县| 房产| 金阳县| 乡宁县| 利辛县| 淅川县| 红原县| 米林县| 华亭县| 秦安县| 聂拉木县| 宜城市| 若尔盖县| 赤水市| 玉溪市| 德庆县| 灵宝市| 绥棱县| 双辽市| 隆德县| 尼木县| 雷波县| 锡林浩特市| 潼南县| 吉安市| 秦皇岛市| 彩票| 彰化县| 南丹县| 哈尔滨市| 务川| 衡山县| 翼城县| 七台河市| 卫辉市| 兰溪市| 舒兰市| 改则县|