0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

strlen和sizeof的異同

撞上電子 ? 2023-12-13 08:00 ? 次閱讀


1,strlen函數(shù)

作用: 用于計(jì)算以空字符'\0'結(jié)尾的字符串的長(zhǎng)度,即字符串中的字符個(gè)數(shù),不包括空字符本身。

返回值:strlen返回一個(gè)size_t類(lèi)型的值,表示字符串中字符的數(shù)量。

注意事項(xiàng):

  • strlen 需要在運(yùn)行時(shí)遍歷字符串,直到遇到空字符才停止計(jì)數(shù)。
  • 如果字符串沒(méi)有以'\0' 結(jié)尾,strlen可能導(dǎo)致未定義的行為。

#include #include
int main() {char str[] = "Hello, World!";size_t length = strlen(str);
printf("Length of the string: %zu\n", length);
return 0;}

2,sizeof運(yùn)算符

作用:用于獲取變量、數(shù)據(jù)類(lèi)型或數(shù)組在內(nèi)存中占用的字節(jié)數(shù)。
返回值:sizeof返回一個(gè)size_t類(lèi)型的值,表示操作數(shù)占用的字節(jié)數(shù)。
注意事項(xiàng):

  • sizeof是在編譯時(shí)確定的,不需要運(yùn)行時(shí)遍歷數(shù)據(jù)結(jié)構(gòu)。
  • 對(duì)數(shù)組使用sizeof可以獲取整個(gè)數(shù)組的大小,但對(duì)指針使用sizeof只能獲取指針本身的大小。

#include
int main() {char str[] = "Hello, World!";size_t size = sizeof(str);
printf("Size of the array: %zu bytes\n", size);
return 0;}

3,異同點(diǎn)

計(jì)算方式:strlen遍歷字符串直到遇到空字符。sizeof在編譯時(shí)計(jì)算大小。
適用對(duì)象:strlen適用于以空字符結(jié)尾的字符串。sizeof適用于變量、數(shù)據(jù)類(lèi)型或數(shù)組。返回值:strlen返回字符的數(shù)量。sizeof返回字節(jié)數(shù)。字符串長(zhǎng)度:strlen計(jì)算字符串長(zhǎng)度時(shí)不包括空字符。sizeof計(jì)算字符串長(zhǎng)度時(shí)包括空字符。綜上所述,strlen和sizeof在功能和用法上有較大差異,前者主要用于處理字符串的長(zhǎng)度,后者用于獲取數(shù)據(jù)結(jié)構(gòu)在內(nèi)存中的大小。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    575

    瀏覽量

    20470
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4284

    瀏覽量

    62325
  • 運(yùn)算符
    +關(guān)注

    關(guān)注

    0

    文章

    171

    瀏覽量

    11051
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【C語(yǔ)言進(jìn)階】數(shù)組名和指針使用sizeof有什么不同?

    本文介紹一個(gè)比較常見(jiàn)的錯(cuò)誤,是跟sizeof有關(guān)的,不知你是否有掌握呢?
    的頭像 發(fā)表于 10-03 17:53 ?2614次閱讀
    【C語(yǔ)言進(jìn)階】數(shù)組名和指針使用<b class='flag-5'>sizeof</b>有什么不同?

    C語(yǔ)言sizeofstrlen的區(qū)別

    大家好,我是嵌入式老林,從事嵌入式軟件開(kāi)發(fā)多年,今天分享的內(nèi)容是C語(yǔ)言sizeofstrlen的區(qū)別,希望能對(duì)你有所幫助
    發(fā)表于 07-11 11:51 ?1170次閱讀

    【武漢華嵌】結(jié)構(gòu)體的sizeof問(wèn)題

    ; //sizeof 對(duì)象; 注意:sizeof是一個(gè)運(yùn)算符,在C語(yǔ)言中是一個(gè)關(guān)鍵字,并不是函數(shù),要和strlen區(qū)分開(kāi)來(lái)。sizeof是求取所占的存儲(chǔ)空間的所有字節(jié)數(shù)。
    發(fā)表于 03-22 16:26

    strlensizeof區(qū)別

    1.strlen(char*)函數(shù)求的是字符串的實(shí)際長(zhǎng)度,它求得方法是從開(kāi)始到遇到第一個(gè)'\0',如果你只定義沒(méi)有給它賦初值,這個(gè)結(jié)果是不定的,它會(huì)從aa首地址一直找下去,直到遇到'\0'停止。char aa[10];cout
    發(fā)表于 02-10 10:44

    GD32與STM32異同

    一、 GD32 與 STM32 異同1.相同點(diǎn)1)外圍引腳定義:相同型號(hào)的管腳定義相同2) Cortex M3 內(nèi)核:STM32F103 內(nèi)核 R1...
    發(fā)表于 08-04 09:34

    sizeofstrlen函數(shù)的區(qū)別在哪

    野指針是指指針指向的位置是不可知的,主要成因是什么?sizeofstrlen函數(shù)的區(qū)別在哪?鏈表和數(shù)組的區(qū)別在哪?
    發(fā)表于 12-24 07:19

    flash和EEPROM的異同是什么?

    FLASH有哪些類(lèi)型?flash和EEPROM的異同是什么?
    發(fā)表于 01-20 06:15

    Android和Linux系統(tǒng)的異同點(diǎn)是什么?

    Android和Linux系統(tǒng)的異同點(diǎn)是什么?
    發(fā)表于 03-02 07:17

    字符串函數(shù)strlen的深入研究

    本系列是為了剖析crt庫(kù)中intel模塊下的那些函數(shù)的,那么我們?nèi)フ艺夷抢锩嬗袥](méi)有strlen的實(shí)現(xiàn),呀!居然找到了,它就位于VC/crt/src/intel/strlen.asm里。打開(kāi)看看,咦
    的頭像 發(fā)表于 03-26 16:01 ?7087次閱讀
    字符串函數(shù)<b class='flag-5'>strlen</b>的深入研究

    sizeofstrlen到底有什么區(qū)別經(jīng)典C語(yǔ)言面試題講解

    基本定義1、sizeof是C/C++中的一個(gè)運(yùn)算符,其作用是返回一個(gè)對(duì)象或者類(lèi)型在內(nèi)存中所占用的字節(jié)數(shù)。 注意:sizeof后面如果是類(lèi)型則必須加括號(hào),如 sizeof(char);而如果是變量名
    的頭像 發(fā)表于 02-03 08:24 ?7221次閱讀

    輪廓儀與粗糙度儀的異同

    有些朋友搞不清楚輪廓儀和粗糙度儀的異同,今天就給大家科普一下二者的異同。
    發(fā)表于 12-02 14:50 ?2398次閱讀

    C語(yǔ)言的sizeof操作符基礎(chǔ)和經(jīng)典問(wèn)題

    在C語(yǔ)言中,sizeof是一個(gè)操作符(operator),而不是函數(shù)!其用于判斷數(shù)據(jù)類(lèi)型或者表達(dá)式長(zhǎng)度(所占的內(nèi)存字節(jié)數(shù))。其有兩種表達(dá)形式:
    的頭像 發(fā)表于 04-04 17:39 ?2645次閱讀
    C語(yǔ)言的<b class='flag-5'>sizeof</b>操作符基礎(chǔ)和經(jīng)典問(wèn)題

    C語(yǔ)言模擬實(shí)現(xiàn)strlen的步驟

    strlen所作的僅僅是一個(gè)計(jì)數(shù)器的工作,它從內(nèi)存的某個(gè)位置(可以是字符串開(kāi)頭,中間某個(gè)位置,甚至是某個(gè)不確定的內(nèi)存區(qū)域)開(kāi)始掃描,直到碰到第一個(gè)字符串結(jié)束符’\0’為止,然后返回計(jì)數(shù)器值(長(zhǎng)度不包含’\0’)。
    的頭像 發(fā)表于 06-29 15:48 ?1453次閱讀
    C語(yǔ)言模擬實(shí)現(xiàn)<b class='flag-5'>strlen</b>的步驟

    電感和磁珠的異同及應(yīng)用綜述

    電感和磁珠的異同及應(yīng)用綜述
    發(fā)表于 06-24 10:28 ?30次下載

    C語(yǔ)言中strlensizeof的區(qū)別

    sizeofstrlen 放在一起考察,題目不難,只要你的C語(yǔ)言基本功扎實(shí),做出來(lái)應(yīng)該沒(méi)問(wèn)題。
    的頭像 發(fā)表于 04-23 09:45 ?483次閱讀