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

C語言中strlen函數(shù)使用及說明

 更新時間:2025年09月19日 08:44:58   投稿:jingxian  
strlen函數(shù)用于計(jì)算字符串長度,不包含終止符'\0',其語法需包含頭文件string.h,參數(shù)為const char*類型,正確使用需確保字符串以'\0'結(jié)尾,否則返回隨機(jī)值,常見實(shí)現(xiàn)方法包括計(jì)數(shù)器、遞歸及指針差值法,注意檢查字符數(shù)組是否合法終止

一. 簡介

strlen函數(shù)是用來計(jì)算字符串長度的,從字符的首地址開始遍歷,以 '\0' 為結(jié)束標(biāo)志,然后將計(jì)算的長度返回,但是計(jì)算的長度不包含'\0'。

二. strlen函數(shù)的語法

size_t  strlen (const char* str);
  •  頭文件:#include <string.h>
  • size_t:無符號整數(shù)(即:unsigned int)
  • const char* str:字符指針    這里只是計(jì)算字符串的長度,用const修飾,避免將原字符串修改掉。

三. strlen函數(shù)的用法

代碼實(shí)例1

#include <stdio.h>
#include <string.h>
int main()
{
	char arr1[10] = "abc";
	int num = strlen(arr);
	printf("數(shù)組arr1的長度為:%d\n", num);
 
	return 0;
}

運(yùn)行結(jié)果:

數(shù)組arr的長度為:3

代碼實(shí)例2

#include <stdio.h>
#include <string.h>
 
int main()
{
	char arr2[] = { 'a','b','c' };
	int num = strlen(arr);
	printf("數(shù)組arr2的長度:%d\n", num);
 
	return 0;
}

運(yùn)行結(jié)果:

數(shù)組arr的長度為:隨機(jī)值

 為什么都是abcde,但是兩者的結(jié)果不同呢?

arr1中存儲的是一個字符串(字符串是以'\0'為結(jié)束標(biāo)志的,且是連續(xù)的),那么strlen遍歷到字符 'c' 時,再向后遍歷,就會遇到'\0',此時strlen停止遍歷,返回字符個數(shù):3;

字符'a'、'b'、 'c' 三個字符依次存儲在arr的字符數(shù)組中,并沒有存儲'\0',所以'c'字符后面存儲的內(nèi)容我們并不知道有什么。而strlen函數(shù)只有遇到'\0'時才停止,所以返回的個數(shù)是一個隨機(jī)值。

注意事項(xiàng)

使用strlen函數(shù)時,應(yīng)該檢查字符數(shù)組是否以'\0'為結(jié)束標(biāo)志。

四. strlen函數(shù)功能的實(shí)現(xiàn)

1.計(jì)數(shù)器方法

代碼實(shí)例

#include <stdio.h>
#include <string.h>

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

int main()
{
	char name[] = "shengyun";

	int num = my_strlen(name);
	printf("字符串name的長度是:%d\n", num);
	return 0;
}

 代碼結(jié)果:

字符串name的長度是:8

2.遞歸方法

代碼實(shí)例

#include <stdio.h>
#include <string.h>

int my_strlen(const char* p)
{
	int count = 0;
	if (*p != '\0')
	{
		return 1 + my_strlen(p+1);
	}
	else
	{
		return 0;
	}
}

int main()
{
	char name[] = "shengyun";
	int num = my_strlen(name);
	printf("字符串name的長度是:%d\n", num);
	return 0;
}

 代碼結(jié)果

字符串name的長度是:8

3.指針 - 指針方法

 代碼實(shí)例

#include <stdio.h>
#include <string.h>

int my_strlen(char* p)
{
	char* start = p;
	while (*p != '\0')
	{
		p++;
	}
	return p - start;
}

int main()
{
	char name[] = "shengyun";
	int num = my_strlen(name);
	printf("字符串name的長度是:%d\n", num);
	return 0;
}

 代碼結(jié)果

字符串name的長度是:8

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Objective-C限制函數(shù)調(diào)用的頻率詳解

    Objective-C限制函數(shù)調(diào)用的頻率詳解

    這篇文章主要給大家介紹了關(guān)于Objective-C限制函數(shù)調(diào)用的頻率的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • C++獲取任務(wù)欄打開程序窗口示例

    C++獲取任務(wù)欄打開程序窗口示例

    這篇文章主要介紹了C++獲取任務(wù)欄打開程序窗口,大家可以參考使用
    2013-11-11
  • Qt中QPushButton組件的使用詳解

    Qt中QPushButton組件的使用詳解

    QPushButton是Qt庫中的一個重要組件,本文主要介紹了Qt中QPushButton組件的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • C++ 實(shí)現(xiàn)球迷 今日頭條面試題

    C++ 實(shí)現(xiàn)球迷 今日頭條面試題

    這篇文章主要介紹了C++實(shí)現(xiàn)球迷今日頭條面試題功能,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-08-08
  • c++中的static修飾符示例詳解

    c++中的static修飾符示例詳解

    在c++中,靜態(tài)成員是屬于整個類而不是某個對象,靜態(tài)成員變量只存儲一份供所有對象共用,下面這篇文章主要給大家介紹了關(guān)于c++中static修飾符的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-10-10
  • C語言結(jié)構(gòu)體指針的示例代碼

    C語言結(jié)構(gòu)體指針的示例代碼

    本文主要介紹了C語言結(jié)構(gòu)體指針的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-07-07
  • opencv4.5.4+VS2022開發(fā)環(huán)境搭建的實(shí)現(xiàn)

    opencv4.5.4+VS2022開發(fā)環(huán)境搭建的實(shí)現(xiàn)

    本文主要介紹了opencv4.5.4+VS2022開發(fā)環(huán)境搭建的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C++?AVL樹的兩單旋和兩雙旋的項(xiàng)目實(shí)踐

    C++?AVL樹的兩單旋和兩雙旋的項(xiàng)目實(shí)踐

    本文主要介紹了C++?AVL樹的兩單旋和兩雙旋的項(xiàng)目實(shí)踐,根據(jù)節(jié)點(diǎn)插入位置的不同,AVL樹的旋轉(zhuǎn)分為四種,下面就來介紹一下,感興趣的可以了解一下
    2024-03-03
  • C++中的while循環(huán)和for循環(huán)語句學(xué)習(xí)教程

    C++中的while循環(huán)和for循環(huán)語句學(xué)習(xí)教程

    這篇文章主要介紹了C++中的while循環(huán)和for循環(huán)語句學(xué)習(xí)教程,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • 通過c語言調(diào)用系統(tǒng)curl動態(tài)庫的示例詳解

    通過c語言調(diào)用系統(tǒng)curl動態(tài)庫的示例詳解

    這篇文章中我們將通過一個簡單的示例來講解如何在Ubuntu系統(tǒng)中通過C語言調(diào)用動態(tài)庫(共享庫)的方法,我們將使用libcurl庫,這是一個基于客戶端的URL傳輸庫,廣泛用于各種程序和應(yīng)用中以訪問網(wǎng)頁和服務(wù)器數(shù)據(jù),需要的朋友可以參考下
    2024-03-03

最新評論

建宁县| 盐津县| 济南市| 南昌县| 中阳县| 普兰店市| 西林县| 安徽省| 高唐县| 东山县| 黑龙江省| 澄江县| 临泉县| 塔河县| 老河口市| 高唐县| 宣化县| 延长县| 德钦县| 肇州县| 阿拉善左旗| 庐江县| 红安县| 石泉县| 木兰县| 临猗县| 东乡县| 桂阳县| 金湖县| 鄱阳县| 河北区| 肃北| 颍上县| 通化市| 栾川县| 浦城县| 昌黎县| 蒲城县| 师宗县| 光山县| 全椒县|