C語言 模擬實現strcpy函式與strcat函式

2021-08-19 06:34:02 字數 1659 閱讀 7072

strcpy函式:

首先我們來了解一下strcpy函式的功能和用法:strcpy是一種c語言的標準庫函式,strcpy把從src位址開始且含有』\0』結束符的字串複製到以dest開始的位址空間,返回值的型別為char*。也就是將乙個字串拷貝到另乙個字串中。

那接下來我們看如何具體實現。我們的基本思想是定義兩個指標src和dest,分別指向源字串和目標字串。當源字串指標沒有走到』\0』即字串結束標誌時,我們將源字串指標所指向的值賦值給目標字串指標所指向的值,然後將兩個指標向後移動,直至源字串指標走到』\0』,迴圈結束,此時,我們已經完成了我們的拷貝。

下面是具體實現**:

#include

#include

#include

char* my_strcpy(char* dest, const

char* src)//源字串指標變數是不改變的,所以用const修飾,以起到保護作用

return ret;

}int main()

; char* arr2 = "abcdefg";

char* s = null;

s = my_strcpy(arr1, arr2);

printf("%s\n",s);

system("pause");

return

0;}

執行結果如下圖:

strcat函式:

同樣,我們在模擬實現之前先看一下它的功能和用法:strcat函式的功能是把src所指字串新增到dest結尾處(覆蓋dest結尾處的』\0』)。即將乙個字串拼接到另乙個字串的後面,也就是將源字串的第乙個字元拷貝至目標字串的』\0』處,完成拼接功能。

那麼下面我們來看下怎麼模擬實現這個strcat函式:我們的基本思想是先使用迴圈將目標字串指標移到』\0』的位置,然後再將源字串拷貝至目標字串。

#include

#include

#include

/*基本思想:strcat函式是字串拼接函式,即將乙個字串拷貝至另乙個字串的後面,即將源字串的第乙個字元拷貝到目標字串

的'\0'處。我們在實現**時可以先將目標字串指標迴圈走至'\0'處,再將源字串拷貝到'\0'處。*/

char* my_strcat(char* dest, const char* src)

/*迴圈條件中語句的結果是*src賦給*dest的值,當*src賦給*dest的值不為'\0'時,進行迴圈,當*src賦給*dest的值是

'\0'時,跳出迴圈。在此需要使用後置++,這樣才能保證可以將'\0'拷貝到目標字串中。*/

while (*dest++ = *src++)

return ret;

}int main()

執行結果如下圖:

我們在實現兩個模擬函式時都要注意兩點:

1.指標引數需要斷言,指標不為null。

2.源字串是不改變的,所以用const修飾,以起到保護作用。

模擬實現strcpy函式

strcpy函式是字串操作函式,用來字串複製,把乙個字串的內容複製到另乙個字串中。src稱為源字串,dst稱為目的操作串。函式實現如下 char my strcpy char dst,const char src 1 1 src為源字串,不可改變,故用const修飾 2 指標判斷是否為空,保證 的健...

模擬實現strcpy函式

hello,chenwei 模擬實現strcpy函式 const的用法 1修飾常變數 2修飾指標變數 assert基本用法 assert 表示式 如果表示式為真,則程式繼續執行。反之,則停止並且提示錯誤 include include include 第一種 char my strcpy const...

用C語言模擬實現庫函式strcpy

模擬實現庫函式strcpy 要實現庫函式strcpy,我們應該首先要知道strcpy函式的作用。strcpy s1,s2 strcpy函式的意思是 把字串s2拷貝到s1中,連同字串結束標誌也一同拷貝。如果s2 good 那麼記憶體合適的s1中存放的是good 0。下面是strcpy在庫函式的原型 那...