回覆列表
  • 1 # 成都茂大叔

    選擇定址和讀寫更快的儲存介質來儲存你的字串,效率就比較高。比如,把字串放進暫存器內在暫存器之間進行復制。

  • 2 # lehoon

    1、複製字串,標準庫就是memcpy,strcpy,理論上memcpy會快些,因為是按照記憶體複製的。

    2、拼接字串,用strcat函式,也可以用memcpy。

    不管哪類函式,都需要考慮溢位問題。

    要想操作快一些就需要考慮用機器位數對齊位元組數的整數倍。

    能做到0複製設計應該是最快的,也可以透過設計規避真正複製複製的損耗,比如透過連結串列記錄記憶體塊地址及長度,使用的時候遍歷連結串列獲取需要的內容

  • 3 # 自然隨鑫

    突發奇想:

    char* connection(char *source, char *objective)

    {

    int i = 0;

    char *pointer, *pointer_return;

    whlie(*source)

    {

    source++;

    i++;

    }

    while(*objective)

    {

    objective++;

    i++;

    }

    //不作判斷了

    pointer = pointer_return = malloc(i + 1);

    whlie(*source)

    {

    *pointer = *source;

    pointer++;

    source++;

    }

    whlie(*objective)

    {

    *pointer = *objective;

    pointer++;

    objective++;

    }

    *(pointer + 1) = 0; //最後加0

    return pointer_return;

    }

  • 4 # 平平淡淡才是真真真

    1)簡單來,直接用 strcat 函式,需要包含標頭檔案 string.h2)自己實現的話也不麻煩,但是要考慮一些細節:假設兩個字串指標為 str1,str2 ,現在要講 str1 和 str2 連線成一個新的字串。a.考慮指標 str1,str2 是否非空b.如果將str2的內容直接連線到str1的末尾,要考慮str1是否有足夠的剩餘空間來放置連線上的str2的內容。如果用一個新的記憶體空間來儲存str1和str2的連線結果,需要動態分配記憶體空間。

  • 5 # NMLINUX

    提到字串的複製和連線,我們一般會想到字串複製函式strcpy和字串連線函式strcat。但是在工程中一定不能用strcpy和strcat函式,因為這兩個函式存在記憶體洩露的風險。當源字串超過目的字元陣列所能容納的空間的時候,就會記憶體洩漏。我們可以用字串複製函式strncpy和字串連線函式strncat。

    strncpy函式原型是char* strncpy(char* dest,const char* src,size_tn),功能:把src指向的字串的前size_tn個字元複製到dest所指向的字元陣列中,返回指向dest的指標。

    strncat函式原型是 char* strncat(char* dest,const char* src,size_tn),功能:把src指向的字串的前size_tn個字元複製到dest所指向的字元陣列的結尾,返回指向dest的指標。

    以上兩個dest指向的字元陣列都要足夠容納size_tn個字元。如果是src所指向的字串整個都複製過去,可以用sizeof(src)替換size_tn。用這兩個函式還要包含標頭檔案#include<string.h>

  • 中秋節和大豐收的關聯?
  • 喬丹的哥哥如果有兩米的身高,在當時的聯盟能打出什麼水平?