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

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

 更新時(shí)間:2018年08月05日 12:14:57   作者:ZWE7616175  
這篇文章主要介紹了C語(yǔ)言中求字符串長(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ù)器,從前向后遍歷一遍,沒(méi)有遇到‘\0'就讓指針向后加一,找到最后一個(gè)字符,記下來(lái)地址,然后用最后一個(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語(yǔ)言中獲取字符串長(zhǎng)度的函數(shù)就介紹到這了,需要的朋友可以參考一下。

相關(guān)文章

  • C/C++多態(tài)深入探究原理

    C/C++多態(tài)深入探究原理

    多態(tài)按字面的意思就是多種形態(tài)。當(dāng)類之間存在層次結(jié)構(gòu),并且類之間是通過(guò)繼承關(guān)聯(lián)時(shí),就會(huì)用到多態(tài)。C++?多態(tài)意味著調(diào)用成員函數(shù)時(shí),會(huì)根據(jù)調(diào)用函數(shù)的對(duì)象的類型來(lái)執(zhí)行不同的函數(shù)
    2022-06-06
  • 淺談C++函數(shù)聲明后面加throw()的作用(必看)

    淺談C++函數(shù)聲明后面加throw()的作用(必看)

    下面小編就為大家?guī)?lái)一篇淺談C++函數(shù)聲明后面加throw()的作用(必看)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • C語(yǔ)言編程中從密碼文件獲取數(shù)據(jù)的函數(shù)總結(jié)

    C語(yǔ)言編程中從密碼文件獲取數(shù)據(jù)的函數(shù)總結(jié)

    這篇文章主要介紹了C語(yǔ)言編程中從密碼文件獲取數(shù)據(jù)的函數(shù)總結(jié),包括getpw()函數(shù)和getpwnam()函數(shù)以及getpwuid()函數(shù),需要的朋友可以參考下
    2015-08-08
  • 完美解決QT?QGraphicsView提升到QChartView報(bào)錯(cuò)的問(wèn)題

    完美解決QT?QGraphicsView提升到QChartView報(bào)錯(cuò)的問(wèn)題

    使用QT提供的QChartView來(lái)繪制圖表,提升QGraphicsView控件繼承QChartView后,然后將QGraphicsView提升到我們自己寫的類,怎么才能確保提升后編譯不報(bào)錯(cuò)呢,下面小編給大家?guī)?lái)了QT QGraphicsView 提升到QChartView報(bào)錯(cuò)解決方案,感興趣的朋友一起看看吧
    2023-05-05
  • C++類和對(duì)象補(bǔ)充

    C++類和對(duì)象補(bǔ)充

    類是創(chuàng)建對(duì)象的模板,一個(gè)類可以創(chuàng)建多個(gè)對(duì)象,每個(gè)對(duì)象都是類類型的一個(gè)變量;創(chuàng)建對(duì)象的過(guò)程也叫類的實(shí)例化。每個(gè)對(duì)象都是類的一個(gè)具體實(shí)例(Instance),擁有類的成員變量和成員函數(shù)
    2021-10-10
  • 詳解C++文件讀寫操作

    詳解C++文件讀寫操作

    這篇文章主要為大家詳細(xì)介紹了C++文件讀寫操作,感興趣的小伙伴們可以參考一下
    2016-03-03
  • C++設(shè)計(jì)模式之訪問(wèn)者模式

    C++設(shè)計(jì)模式之訪問(wèn)者模式

    這篇文章主要介紹了C++設(shè)計(jì)模式之訪問(wèn)者模式,本文講解了什么是訪問(wèn)者模式、訪問(wèn)者模式的UML類圖、訪問(wèn)者模式的實(shí)現(xiàn)代碼等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • QT線程池的使用(QThreadPool類和QRunnable類)

    QT線程池的使用(QThreadPool類和QRunnable類)

    本文主要介紹了QT線程池的使用(QThreadPool類和QRunnable類),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • C++指向類成員函數(shù)的指針詳細(xì)解析

    C++指向類成員函數(shù)的指針詳細(xì)解析

    由于這幾天在開(kāi)發(fā)中要用到函數(shù)指針,所以就整理了一下關(guān)于函數(shù)指針的概念
    2013-08-08
  • C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之使用鏈表模擬棧的實(shí)例

    C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之使用鏈表模擬棧的實(shí)例

    這篇文章主要介紹了C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之使用鏈表模擬棧的實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-08-08

最新評(píng)論