99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

C語言中字符串與庫函數的那些事(+模擬實現)-創新互聯

如果本文對大家有用的話,請留下個贊吧( ﹡?o?﹡ )

成都創新互聯公司專注于企業網絡營銷推廣、網站重做改版、內黃網站定制設計、自適應品牌網站建設、成都h5網站建設商城系統網站開發、集團公司官網建設、成都外貿網站建設公司、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為內黃等各大城市提供網站開發制作服務。

如果大家有好的意見或者疑問請留在評論區,看見了一定認真考慮!O(∩_∩)O~~

    • strlen函數

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

作用:返回字符串長度

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

例子:

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

最終輸出結果為:12

注意事項:

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

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

模擬實現:

1.循環版

#include#include
int my_strlen(const char* str) {
assert(str);
    int count = 0;//計數
    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函數

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

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

如圖:

實現:從source開始向后一直到遇見\0為止,\0也會拷貝;最后返回指針destination指向位置。

例子:

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

最終輸出結果為:I love China

注意事項:

ps:如果源字符串沒有\0,就會出現以下結果,如圖:

ps:destination不能是const char *類型

ps:當目標空間較小,不能完全拷貝,就會越界訪問,但是還是會強行將后面的拷貝進去。

模擬實現:

#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函數

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

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

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

例子:

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

最終輸出為:holle world!

注意事項:

ps:三個注意事項的錯誤結果同strcpy

模擬實現:

#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));
}

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

網頁標題:C語言中字符串與庫函數的那些事(+模擬實現)-創新互聯
網站路徑:http://www.yijiale78.com/article32/docesc.html

成都網站建設公司_創新互聯,為您提供標簽優化面包屑導航微信公眾號做網站動態網站網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設