C語言中的strdup 和strndup 函式

2021-08-07 12:07:33 字數 492 閱讀 8077

strdup() 和 strndup() 函式的原型分別為:

#include char *strdup(const char *s);

char *strndup(const char *s, size_t n);

說明:

strdup() 函式將引數 s 指向的字串複製到乙個字串指標上去,這個字串指標事先可以沒被初始化。在複製時,strdup() 會給這個指標分配空間,使用 malloc() 函式進行分配,如果不再使用這個指標,相應的用 free() 來釋放掉這部分空間。

strndup() 函式只複製前面 n 個字元。

舉例:

#include #include int main(void)

執行輸出:
./strdup 

hello world

C語言中strdup函式使用方法

標頭檔案 include 定義函式 char strdup const char s 函式說明 strdup 會先用malloc 配置與引數s 字串相同的空間大小,然後將引數s 字串的內容複製到該記憶體位址,然後把該位址返回。該位址最後可以利用free 來釋放。返回值 返回一字串指標,該指標指向複製...

c 語言中的 和

我們使用 把巨集引數變為乙個字串,用 把兩個巨集引數貼合在一起.當巨集引數是另乙個巨集的時候,需要注意的是凡巨集定義裡有用 或 的地方巨集引數是不會再展開。下面舉兩個例項 define print f,v printf the v is f v 加上 不會替換引數,只替換其所對應的字元 int ma...

C語言中的「 」和「

先說左移,左移就是把乙個數的所有位都向左移動若干位,在c中用 運算子.例如 int i 1 i i 2 把i裡的值左移2位 也就是說,1的2進製是000.0001 這裡1前面0的個數和int的位數有關,32位機器,gcc裡有31個0 左移2位之後變成 000.0100,也就是10進製的4,所以說左移...