真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C語言中字符串與庫函數(shù)的那些事(+模擬實(shí)現(xiàn))-創(chuàng)新互聯(lián)

如果本文對(duì)大家有用的話,請(qǐng)留下個(gè)贊吧( ﹡?o?﹡ )

成都創(chuàng)新互聯(lián)公司專注于企業(yè)網(wǎng)絡(luò)營(yíng)銷推廣、網(wǎng)站重做改版、內(nèi)黃網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城系統(tǒng)網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為內(nèi)黃等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

如果大家有好的意見或者疑問請(qǐng)留在評(píng)論區(qū),看見了一定認(rèn)真考慮!O(∩_∩)O~~

    • strlen函數(shù)

函數(shù)原型:size_t strlen(const char *string);

作用:返回字符串長(zhǎng)度

實(shí)現(xiàn):從第一個(gè)字符開始數(shù),直到遇見\0停止(\0不算入其中,遇見空格也算入其中)。

例子:

#include#includeint main(){
char arr[]="I love China"
int len =strlen(arr);
printf("%d",len);
}

最終輸出結(jié)果為:12

注意事項(xiàng):

即size_t-size_t一定的結(jié)果是按無符號(hào)的解讀的(一定大于等于0)

例如:strlne("abc")-strlen("abcd")是大于零的

模擬實(shí)現(xiàn):

1.循環(huán)版

#include#include
int my_strlen(const char* str) {
assert(str);
    int count = 0;//計(jì)數(shù)
    while (*str++ != '\0') 
        count++;
    return count;
}
int main() {
    char arr[] = "I love China";
        int len = my_strlen(arr);
    printf("%d", len);
}

2.遞歸版

#include#include
int my_strlen(const char* str) {
    assert(str);
    if (*str++ != '\0') return 1 + my_strlen(str);
    return 0;
}
int main() {
    char arr[] = "I love China";
        int len = my_strlen(arr);
    printf("%d", len);
}

3.指針-指針版

#include#include
int my_strlen(const char* str) {
    assert(str);
    const char* end = str;
    while (*end != '\0')end++;//end最終指向\0;
    return end-str;
}
int main() {
    char arr[] = "I love China";
        int len = my_strlen(arr);
    printf("%d", len);
}
    • strcpy函數(shù)

函數(shù)原型:char* strcpy(char *destination,const char * source)

作用:將指針source指向的字符串拷貝到指針destination指向的空間中,destination中原有的被替代,但是沒有被拷貝的地方內(nèi)容不變(\0會(huì)被拷貝,所以后面的打印的時(shí)候不會(huì)出現(xiàn))

如圖:

實(shí)現(xiàn):從source開始向后一直到遇見\0為止,\0也會(huì)拷貝;最后返回指針destination指向位置。

例子:

#include#includeint main() {
    char str1[20] = {”####“};
    char str2[] = "I love China";
    printf("%s", strcpy(str1, str2));
    return 0;
}

最終輸出結(jié)果為:I love China

注意事項(xiàng):

ps:如果源字符串沒有\(zhòng)0,就會(huì)出現(xiàn)以下結(jié)果,如圖:

ps:destination不能是const char *類型

ps:當(dāng)目標(biāo)空間較小,不能完全拷貝,就會(huì)越界訪問,但是還是會(huì)強(qiáng)行將后面的拷貝進(jìn)去。

模擬實(shí)現(xiàn):

#include#include
char* my_strcpy(char* destination, const char* source) {
    assert(destination);
    assert(source);
    char* str1 = destination;
    const char* str2 = source;
    while (*str1++ =*str2++) ;
    return destination;
}
int main() {
    char str1[20] = {"################"};
    char str2[] = "II love China";
    printf("%s", my_strcpy(str1, str2));
    return 0;
}
    • strcat函數(shù)

函數(shù)原型: char *strcat(char *strDest,const char *strSrc) ;

作用:將strSrc指向的字符串連接到strDest指向字符串的后面(strSrc的\0也會(huì)過去)

實(shí)現(xiàn):找到*strDest中的\0,然后從\0開始連接,直到遇見 *strSrc中的\0為止。(連接過程與strcpy有點(diǎn)相似),最后返回指針strDest指向位置。

例子:

#include#includeint main() {
    char strDest[20] = "holle ";
    const char strSrc[] = "world!";
    printf("%s", strcat(strDest, strSrc));
}

最終輸出為:holle world!

注意事項(xiàng):

ps:三個(gè)注意事項(xiàng)的錯(cuò)誤結(jié)果同strcpy

模擬實(shí)現(xiàn):

#include#include
char* my_strcat(char* Dest, const char* Src) {
    assert(Dest);
    assert(Src);
    char* str = Dest;
    while (*++str);
    while (*str++ = *Src++);
    return Dest;
}
int main() {
    char strDest[20] = "holle ";
    const char strSrc[] = "world!";
    printf("%s", my_strcat(strDest, strSrc));
}

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


網(wǎng)頁名稱:C語言中字符串與庫函數(shù)的那些事(+模擬實(shí)現(xiàn))-創(chuàng)新互聯(lián)
文章源于:http://weahome.cn/article/docesc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部