C語言 複製字串

2021-10-07 21:53:18 字數 2181 閱讀 4869

#include

#define length 128

char

*str_copy

(char

*p,const

char

*s)return t;

}int

main

(void

)

也可將str_copy 函式

char

*str_copy

(char

*p,const

char

*s)return t;

}

換成如下函式

char

*str_copy

(char

*p,const

char

*s)return t;

}

p[i] 和 s[i] 分別是 *(p + i) 和 * (s + i),即訪問指標p 和 s 所指向的字元之後第 i 個字元的表示式。為了訪問指標所指元素後第 i 個字元,分別對指標 p 和 s 進行了兩種運算。

兩個函式進行對比

while

(*p++

=*s++

)

如果將

char str[length]=""

;

換成

char

*str =

"";

會導致程式執行異常。

注:不要改寫字串字面量,也不要對超過字串字面量的記憶體空間進行寫入操作。

str_copy

(str, tmp)

;puts

("將 tmp 複製給 str 後:");

printf

("str = \"%s\"\n"

, str)

;

可以簡寫成:

puts

("將 tmp 複製給 str 後:");

printf

("str = \"%s\"\n"

,str_copy

(str, tmp)

);

首先將字串 tmp 複製到字串 str,然後再將複製後的 str 顯示出來。

傳入printf 函式的正是「指向複製後的字串的第乙個字元的指標」。

使用strcpy函式複製字串

標頭檔案原型

說明返回值

#include

char *strcpy(char *s1, const char *s2)

將s2指向的字串複製到s1指向的陣列中。若s1和s2指向的記憶體空間重疊,則作未定義處理。

返回s1的值。

#include

#include

intmain

(void

)

strcpy函式的實現

char

*strcpy

(char

*s1,

const

char

*s2)

return tmp;

}

strncpy函式控制字串複製的個數

標頭檔案原型

說明返回值

#include

char *strncpy(char *s1, const char *s2, size_t n)

將s2指向的字串複製到s1指向的陣列中。若s2的長度大於等於n,則複製到第n個字元為止。否則用null字元填充剩餘部分。若s1和s2指向的記憶體空間重疊,則作未定義處理。

返回s1的值。

#include

#include

intmain

(void

)

strncpy函式的實現

char

*strncpy

(char

*s1,

const

char

*s2, size_t n)

n--;}

while

(n--

)return tmp;

}

C語言 複製字串 malloc

今天在看前輩的 對其中字串複製有時候直接把指標賦給另乙個指標,有的malloc乙個記憶體,然後把整個字串的值拷貝過來,有點費解,就研究了一下,會了之後發現也沒什麼奧秘,其實很簡單,不過還是記錄一下比較好。先寫結論 如果要拷貝的源字串的記憶體會被 那麼就必須malloc乙個記憶體再拷貝整個字串 有時候...

複製字串

有一字串,包含 n個字元。寫一函式,將此字串中從第 m個字元開始的全部字元複製成為另乙個字串。數字n 一行字串數字m從 m開始的子串 6 abcdef 3 cdef 主函式已給定如下,提交時不需要包含下述主函式 c int main include include void strcpypos ch...

複製字串

time limit 1 sec memory limit 128 mb submit 164 solved 112 submit status web board 有一字串,包含n個字元。寫一函式,將此字串中從第m個字元開始的全部字元複製成為另乙個字串。數字n 一行字串數字m 從m開始的子串 6a...