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

C語言實(shí)現(xiàn)strlen的三種方法小結(jié)

 更新時(shí)間:2023年06月19日 10:21:09   作者:Hello_World_213  
本文主要介紹了C語言實(shí)現(xiàn)strlen的三種方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1.strlen介紹

strlen --- 求字符串長度

size_t strlen (const char* str);

找到字符串后的‘\0’為止,不包含‘\0’;

2.如何使用strlen庫函數(shù)

int len = strlen(“abcdef”);

 輸出結(jié)果:6

char arr[] = { "a" , "b" , "c"?, "d"?, "e" , "f" };
int len = strlen(arr);

輸出結(jié)果:隨機(jī)值

3.三種方法實(shí)現(xiàn)strlen 計(jì)數(shù)器法:

#include<stdio.h>
#include<assert.h>
int my_strlen(const char* str)
{
	int count = 0;
	assert(str != NULL);
	while (*str != '\0')//while(*str)
	{
		count++;
		str++;
	}
	return count;
}
int main()
{
	int len = my_strlen("abcdef");
	printf("%d\n", len);
	return 0;
}

遞歸法:

#include<stdio.h>
int my_strlen(char *str)
{
	if (*str != '\0')
	{
		return 1 + my_strlen(str + 1);
	}
	return 0;
}
int main()
{
	char arr[] = { "abcdef" };
	int ret = my_strlen(arr);
	printf("%d\n", ret);
	return 0;
}

指針-指針法:

#include<stdio.h>
int my_strlen(char* str)
{
	char* start = str;
	char* end = str;
	while (*end!='\0')
	{
		end++;
	}
	return end - start;
}
int main()
{
	char arr[] = "bit";
	int len = my_strlen(arr);
	printf("%d\n", len);
	return 0;
}

4.關(guān)于strlen返回值

  • strlen庫函數(shù)的返回值是size_t,其含義是unsigned int,即為無符號數(shù);
  • 我們自己實(shí)現(xiàn)庫函數(shù)strlen的my_strlen的返回值則是int,即為有符號數(shù).

返回類型為unsigned int 和 int 各有利弊:1.返回int類型 不容易出現(xiàn)錯(cuò)誤   2.返回unsigned int類型 說明字符串的長度是沒有負(fù)數(shù)的

 3 - 6 = -3;由于strlen庫函數(shù)的返回類型是unsigned int,則-3被視為無符號數(shù)自然也就比0大;所以容易引發(fā)歧義與誤解.

到此這篇關(guān)于C語言實(shí)現(xiàn)strlen的三種方法小結(jié)的文章就介紹到這了,更多相關(guān)C語言實(shí)現(xiàn)strlen內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++動態(tài)數(shù)組兩種實(shí)現(xiàn)方式詳解(std::vector vs malloc)

    C++動態(tài)數(shù)組兩種實(shí)現(xiàn)方式詳解(std::vector vs malloc)

    在C++中動態(tài)數(shù)組是處理可變大小數(shù)據(jù)集合的常見需求,本文將詳細(xì)介紹兩種主要的實(shí)現(xiàn)方式,使用C++標(biāo)準(zhǔn)庫的std::vector和使用C風(fēng)格的malloc,下面就來詳細(xì)的介紹一下,感興趣的可以了解一下
    2026-01-01
  • OpenCV邊緣提取算法流程的實(shí)現(xiàn)(附DEMO)

    OpenCV邊緣提取算法流程的實(shí)現(xiàn)(附DEMO)

    本文主要介紹了OpenCV邊緣提取算法流程的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 淺談帶緩沖I/O 和不帶緩沖I/O的區(qū)別與聯(lián)系

    淺談帶緩沖I/O 和不帶緩沖I/O的區(qū)別與聯(lián)系

    下面小編就為大家?guī)硪黄獪\談帶緩沖I/O 和不帶緩沖I/O的區(qū)別與聯(lián)系。小編覺得挺不錯(cuò)的現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • C語言字符串函數(shù)模擬實(shí)現(xiàn)流程介紹

    C語言字符串函數(shù)模擬實(shí)現(xiàn)流程介紹

    字符串函數(shù)(String processing function)也叫字符串處理函數(shù),指的是編程語言中用來進(jìn)行字符串處理的函數(shù),如C,pascal,Visual以及LotusScript中進(jìn)行字符串拷貝,計(jì)算長度,字符查找等的函數(shù)
    2022-09-09
  • C++數(shù)據(jù)結(jié)構(gòu)之文件壓縮(哈夫曼樹)實(shí)例詳解

    C++數(shù)據(jù)結(jié)構(gòu)之文件壓縮(哈夫曼樹)實(shí)例詳解

    這篇文章主要介紹了C++數(shù)據(jù)結(jié)構(gòu)之文件壓縮(哈夫曼樹)實(shí)例詳解的相關(guān)資料,利用哈夫曼編碼的方式對文件進(jìn)行壓縮,并且對壓縮文件可以解壓,需要的朋友可以參考下
    2017-07-07
  • C++基于CreateToolhelp32Snapshot獲取系統(tǒng)進(jìn)程實(shí)例

    C++基于CreateToolhelp32Snapshot獲取系統(tǒng)進(jìn)程實(shí)例

    這篇文章主要介紹了C++基于CreateToolhelp32Snapshot獲取系統(tǒng)進(jìn)程實(shí)例,是Windows應(yīng)用程序設(shè)計(jì)中非常實(shí)用的技巧,需要的朋友可以參考下
    2014-10-10
  • 主流操作系統(tǒng)平臺的宏定義

    主流操作系統(tǒng)平臺的宏定義

    這篇文章主要介紹了主流操作系統(tǒng)平臺的宏定義,最近正在學(xué)習(xí)C++程序從Windows 平臺向Unix 平臺移植,參考了 qt 的宏定義文件,需要的朋友可以參考下
    2014-02-02
  • C語言實(shí)現(xiàn)圖書管理系統(tǒng)

    C語言實(shí)現(xiàn)圖書管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C語言實(shí)現(xiàn)鏈隊(duì)列代碼

    C語言實(shí)現(xiàn)鏈隊(duì)列代碼

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)鏈隊(duì)列代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • C++中的HTTP協(xié)議問題

    C++中的HTTP協(xié)議問題

    這篇文章主要介紹了C++中的HTTP協(xié)議問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評論

萝北县| 龙游县| 五华县| 公主岭市| 双鸭山市| 安陆市| 台前县| 桐城市| 句容市| 报价| 平潭县| 莱西市| 鄱阳县| 句容市| 灌阳县| 西乌珠穆沁旗| 德安县| 阿拉善右旗| 孝义市| 宜阳县| 重庆市| 财经| 望江县| 永康市| 苏州市| 宣汉县| 周口市| 临邑县| 巴彦县| 和林格尔县| 大渡口区| 山西省| 深泽县| 廊坊市| 永胜县| 凌源市| 理塘县| 庆城县| 襄垣县| 岳阳县| 南投市|