国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語(yǔ)言中的字符串操作函數(shù)自定義實(shí)現(xiàn):標(biāo)準(zhǔn)版與限定長(zhǎng)度版

這篇具有很好參考價(jià)值的文章主要介紹了C語(yǔ)言中的字符串操作函數(shù)自定義實(shí)現(xiàn):標(biāo)準(zhǔn)版與限定長(zhǎng)度版。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

???????

目錄

1. 標(biāo)準(zhǔn)字符串操作函數(shù)自定義實(shí)現(xiàn)

(a) 自定義strcpy函數(shù)

(b) 自定義strcat函數(shù)

(c) 自定義strcmp函數(shù)

2. 限定長(zhǎng)度字符串操作函數(shù)自定義實(shí)現(xiàn)

(a) 自定義strncpy函數(shù)

(b) 自定義strncat函數(shù)

(c) 自定義strncmp函數(shù)


?對(duì)字符串的操作是不可或缺的一部分。標(biāo)準(zhǔn)庫(kù)提供了如strcpy、strcat、strcmp等基礎(chǔ)字符串處理函數(shù),以及它們的“限定長(zhǎng)度”版本strncpy、strncat和strncmp。為了深入理解這些函數(shù)的工作原理,我們首先將分別展示其標(biāo)準(zhǔn)版自定義實(shí)現(xiàn),然后探討它們的限定長(zhǎng)度版本。

1. 標(biāo)準(zhǔn)字符串操作函數(shù)自定義實(shí)現(xiàn)


(a) 自定義strcpy函數(shù)

C語(yǔ)言中的字符串操作函數(shù)自定義實(shí)現(xiàn):標(biāo)準(zhǔn)版與限定長(zhǎng)度版,c語(yǔ)言,c語(yǔ)言,開(kāi)發(fā)語(yǔ)言

char* my_strcpy(char *dest, const char *src) {
    assert(dest != NULL);
    assert(src != NULL);
    char* set = dest;
    while (*dest++ = *src++)
        ;
    return set;
}

my_strcpy函數(shù)負(fù)責(zé)完整地將源字符串src復(fù)制到目標(biāo)字符串dest中,并確保包含結(jié)束符\0。

C語(yǔ)言中的字符串操作函數(shù)自定義實(shí)現(xiàn):標(biāo)準(zhǔn)版與限定長(zhǎng)度版,c語(yǔ)言,c語(yǔ)言,開(kāi)發(fā)語(yǔ)言


(b) 自定義strcat函數(shù)

C語(yǔ)言中的字符串操作函數(shù)自定義實(shí)現(xiàn):標(biāo)準(zhǔn)版與限定長(zhǎng)度版,c語(yǔ)言,c語(yǔ)言,開(kāi)發(fā)語(yǔ)言

void my_strcat(char *dest, const char *src) {
    char* set = dest;
    while (*dest != '\0') {
        dest++;
    }
    while ((*dest++ = *src++) != '\0')
        ;
    return set;
}

my_strcat函數(shù)將源字符串src追加到目標(biāo)字符串dest的末尾,同樣確保結(jié)果字符串以\0結(jié)束。

C語(yǔ)言中的字符串操作函數(shù)自定義實(shí)現(xiàn):標(biāo)準(zhǔn)版與限定長(zhǎng)度版,c語(yǔ)言,c語(yǔ)言,開(kāi)發(fā)語(yǔ)言


(c) 自定義strcmp函數(shù)

C語(yǔ)言中的字符串操作函數(shù)自定義實(shí)現(xiàn):標(biāo)準(zhǔn)版與限定長(zhǎng)度版,c語(yǔ)言,c語(yǔ)言,開(kāi)發(fā)語(yǔ)言

int my_strcmp(char* dest, char* src) {
    while (*dest == *src) {
        if (*dest == '\0') {
            return 0;
        }
        dest++;
        src++;
    }
    return (*dest > *src) - (*dest < *src);
}

my_strcmp用于比較兩個(gè)字符串的內(nèi)容,根據(jù)字典順序返回整數(shù)值:相等則為0,dest大于src時(shí)為正數(shù),反之為負(fù)數(shù)。

C語(yǔ)言中的字符串操作函數(shù)自定義實(shí)現(xiàn):標(biāo)準(zhǔn)版與限定長(zhǎng)度版,c語(yǔ)言,c語(yǔ)言,開(kāi)發(fā)語(yǔ)言


2. 限定長(zhǎng)度字符串操作函數(shù)自定義實(shí)現(xiàn)


(a) 自定義strncpy函數(shù)

C語(yǔ)言中的字符串操作函數(shù)自定義實(shí)現(xiàn):標(biāo)準(zhǔn)版與限定長(zhǎng)度版,c語(yǔ)言,c語(yǔ)言,開(kāi)發(fā)語(yǔ)言

void my_strncpy(char *dest, char* src, int count) {
    assert(*dest && *src);
    char* set = dest;
    while (count-- && (*dest++ = *src++))
        ;
    if (count >= 0) {
        *dest = '\0';
    }
    return dest;
}

my_strncpy函數(shù)僅復(fù)制源字符串src最多count個(gè)字符到目標(biāo)字符串dest中,如果src的字符數(shù)量小于count,則剩余空間填充'\0'。

C語(yǔ)言中的字符串操作函數(shù)自定義實(shí)現(xiàn):標(biāo)準(zhǔn)版與限定長(zhǎng)度版,c語(yǔ)言,c語(yǔ)言,開(kāi)發(fā)語(yǔ)言


(b) 自定義strncat函數(shù)

C語(yǔ)言中的字符串操作函數(shù)自定義實(shí)現(xiàn):標(biāo)準(zhǔn)版與限定長(zhǎng)度版,c語(yǔ)言,c語(yǔ)言,開(kāi)發(fā)語(yǔ)言

void my_strncat(char* dest, char* src, int count) {
    assert(*dest && *src);
    char* set = dest;
    while (*dest != '\0') {
        dest++;
    }
    while (count-- && (*dest++ = *src++))
        ;
    if (count >= 0) {
        *dest = '\0';
    }
    return set;
}

my_strncat函數(shù)將源字符串src最多count個(gè)字符追加到目標(biāo)字符串dest末尾,并確保結(jié)果字符串以'\0'結(jié)束。

C語(yǔ)言中的字符串操作函數(shù)自定義實(shí)現(xiàn):標(biāo)準(zhǔn)版與限定長(zhǎng)度版,c語(yǔ)言,c語(yǔ)言,開(kāi)發(fā)語(yǔ)言


(c) 自定義strncmp函數(shù)

C語(yǔ)言中的字符串操作函數(shù)自定義實(shí)現(xiàn):標(biāo)準(zhǔn)版與限定長(zhǎng)度版,c語(yǔ)言,c語(yǔ)言,開(kāi)發(fā)語(yǔ)言

int my_strncmp(const char* dest, const char* src, int count) {
    assert(dest && src);
    int i = 0;
    while (i < count && *dest == *src && *dest != '\0') {
        i++;
        dest++;
        src++;
    }

    if (i == count || *dest == '\0' || *src == '\0') {
        return 0;
    }
    else {
        return *dest - *src;
    }
}

my_strncmp函數(shù)比較兩個(gè)字符串的前count個(gè)字符,當(dāng)達(dá)到指定字符數(shù)或遇到任一字符串的結(jié)束符時(shí)停止比較,并返回相應(yīng)的字符差值。

C語(yǔ)言中的字符串操作函數(shù)自定義實(shí)現(xiàn):標(biāo)準(zhǔn)版與限定長(zhǎng)度版,c語(yǔ)言,c語(yǔ)言,開(kāi)發(fā)語(yǔ)言

????????在主函數(shù)(main)中,通過(guò)實(shí)際調(diào)用這些自定義函數(shù)并對(duì)比C標(biāo)準(zhǔn)庫(kù)函數(shù),我們可以驗(yàn)證它們的功能正確性,并進(jìn)一步掌握字符串操作函數(shù)的底層邏輯。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-809782.html

到了這里,關(guān)于C語(yǔ)言中的字符串操作函數(shù)自定義實(shí)現(xiàn):標(biāo)準(zhǔn)版與限定長(zhǎng)度版的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C語(yǔ)言之字符串,內(nèi)存操作函數(shù)詳解(一)

    C語(yǔ)言之字符串,內(nèi)存操作函數(shù)詳解(一)

    ??博主CSDN主頁(yè):杭電碼農(nóng)-NEO?? ? ?專欄分類:C語(yǔ)言學(xué)習(xí)分享? ? ??代碼倉(cāng)庫(kù):NEO的學(xué)習(xí)日記?? ? ??關(guān)注我??帶你學(xué)習(xí)更多C語(yǔ)言知識(shí) ? ???? C語(yǔ)言的標(biāo)準(zhǔn)庫(kù)為我們提供了豐富的字符串操作函數(shù)與內(nèi)存操作函數(shù),有我們熟悉的 strlen ,strcpy ,也有我們不熟悉的 strchr , strstr 等

    2024年02月08日
    瀏覽(31)
  • 掌握字符與字符串:C語(yǔ)言中的神奇函數(shù)解析(三)

    掌握字符與字符串:C語(yǔ)言中的神奇函數(shù)解析(三)

    ?? 歡迎大家來(lái)到貝蒂大講堂?? ????養(yǎng)成好習(xí)慣,先贊后看哦~???? 所屬專欄:C語(yǔ)言學(xué)習(xí) 貝蒂的主頁(yè):Betty‘s blog 除了字符函數(shù)和字符串函數(shù),string.h中還有一類 內(nèi)存操作函數(shù) ,如memset(),memcmp()等函數(shù),他們?cè)诠δ芎湍承┳址瘮?shù)很像,但作用范圍更廣,除了作用

    2024年03月09日
    瀏覽(29)
  • 掌握字符與字符串:C語(yǔ)言中的神奇函數(shù)解析(二)

    掌握字符與字符串:C語(yǔ)言中的神奇函數(shù)解析(二)

    ?? 歡迎大家來(lái)到貝蒂大講堂?? ????養(yǎng)成好習(xí)慣,先贊后看哦~???? 所屬專欄:C語(yǔ)言學(xué)習(xí) 貝蒂的主頁(yè):Betty‘s blog 聲明:int strncmp(const char *str1, const char *str2, size_t n) str1 -- 要進(jìn)行比較的第一個(gè)字符串。 str2 -- 要進(jìn)行比較的第二個(gè)字符串。 n -- 要比較的最大字符數(shù)。 作

    2024年03月09日
    瀏覽(25)
  • 掌握字符與字符串:C語(yǔ)言中的神奇函數(shù)解析(一)

    掌握字符與字符串:C語(yǔ)言中的神奇函數(shù)解析(一)

    ?? 歡迎大家來(lái)到貝蒂大講堂?? ????養(yǎng)成好習(xí)慣,先贊后看哦~???? 所屬專欄:C語(yǔ)言學(xué)習(xí) 貝蒂的主頁(yè):Betty‘s blog 我們?cè)趯W(xué)習(xí)C語(yǔ)言的過(guò)程中,除了使用最多的頭文件stdio.h,還會(huì)使用其他頭文件,利用其中的庫(kù)函數(shù)幫助我們簡(jiǎn)化代碼的過(guò)程,比如像math.h,string.h等頭文

    2024年03月09日
    瀏覽(25)
  • C語(yǔ)言中的strtok()函數(shù)進(jìn)行字符串分割

    C語(yǔ)言中的strtok()函數(shù)進(jìn)行字符串分割

    引言 ????????在處理文本或字符串?dāng)?shù)據(jù)時(shí),我們常常需要將一長(zhǎng)串連續(xù)的字符按照特定的分隔符分解成一個(gè)個(gè)獨(dú)立的子串。C語(yǔ)言中提供了一個(gè)非常實(shí)用的庫(kù)函數(shù)—— strtok() ,用于實(shí)現(xiàn)這一功能。本文將通過(guò)一段示例代碼詳細(xì)解析并演示如何使用 strtok() 函數(shù)進(jìn)行字符串分

    2024年01月23日
    瀏覽(27)
  • C語(yǔ)言中的字符與字符串:魔法般的函數(shù)探險(xiǎn)

    C語(yǔ)言中的字符與字符串:魔法般的函數(shù)探險(xiǎn)

    ????????在C語(yǔ)言的世界里,字符和字符串是兩個(gè)不可或缺的元素,它們像是魔法般的存在,讓文字與代碼交織出無(wú)限可能。而在這個(gè)世界里,有一批特殊的函數(shù),它們?nèi)缤诫U(xiǎn)家,引領(lǐng)我們深入字符與字符串的秘境,探尋其中的奧秘。 字符函數(shù),就像是心靈偵探,能夠洞

    2024年04月12日
    瀏覽(19)
  • 深入解析C語(yǔ)言中的字符串輸出操作

    在C語(yǔ)言中,字符串輸出是常見(jiàn)的操作。本篇博客將詳細(xì)討論如何使用printf和puts函數(shù)輸出字符串,以及字符串中的\\0字符和字符串操作結(jié)束標(biāo)志的作用。 輸出結(jié)果: hello c3 輸出結(jié)果: hello c3 輸出結(jié)果: hello c3 輸出結(jié)果: hello 輸出結(jié)果: 本篇博客詳細(xì)討論了C語(yǔ)言中字符串輸

    2024年02月06日
    瀏覽(43)
  • 高階C語(yǔ)言|字符函數(shù)和字符串函數(shù)--函數(shù)的模擬實(shí)現(xiàn)

    高階C語(yǔ)言|字符函數(shù)和字符串函數(shù)--函數(shù)的模擬實(shí)現(xiàn)

    C語(yǔ)言中對(duì)字符和字符串的處理很是頻繁,但是C語(yǔ)言本身是沒(méi)有字符串類型的,字符串通常放在 常量字符串 中或者 字符數(shù)組 中。 字符串常量 適用于那些對(duì)它不做修改的字符串函數(shù) size_t代表strlen函數(shù)返回的是一個(gè)無(wú)符號(hào)整形,str指向的是字符串,接收字符串的地址 字符串已

    2024年02月16日
    瀏覽(23)
  • 【C語(yǔ)言】字符函數(shù)和字符串函數(shù)的詳細(xì)教學(xué)和模擬實(shí)現(xiàn)

    【C語(yǔ)言】字符函數(shù)和字符串函數(shù)的詳細(xì)教學(xué)和模擬實(shí)現(xiàn)

    ??write in front?? ??大家好,我是gugugu。希望你看完之后,能對(duì)你有所幫助,不足請(qǐng)指正!共同學(xué)習(xí)交流?? ??本文由 gugugu 原創(chuàng) CSDN首發(fā)?? 如需轉(zhuǎn)載還請(qǐng)通知? ??個(gè)人主頁(yè):gugugu—精品博客 ??歡迎各位→點(diǎn)贊?? + 收藏?? + 留言??? ??系列專欄:gugugu的精品博客 ??

    2024年02月08日
    瀏覽(20)
  • 【C語(yǔ)言】字符函數(shù)和字符串函數(shù)(一)—>庫(kù)函數(shù)的介紹與模擬實(shí)現(xiàn)

    【C語(yǔ)言】字符函數(shù)和字符串函數(shù)(一)—>庫(kù)函數(shù)的介紹與模擬實(shí)現(xiàn)

    目錄 前言: 一、函數(shù)介紹: (一)求字符串長(zhǎng)度 (1)strlen (二)長(zhǎng)度不受限制的字符串函數(shù) (2)strcpy (3)strcat (4)strcmp (三)長(zhǎng)度受限制的字符串函數(shù) (5)strncpy (6)strncat (7)strncmp (四)字符串查找 (8)strstr (9)strtok (五)錯(cuò)誤信息報(bào)告 (10)strerror (六)

    2024年02月15日
    瀏覽(19)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包