strcat 的自我延伸實現(strncat)!!

    前兩天上課的時候我們老師給我們講了strcat的自我實現,當時聽着很複雜,不過後來老師又把它佈置成了作業。今天寫完作業後,我有一種醍醐灌頂的感覺。估計老師的用意就在此了。

    下面我將寫出我自己實現strcat的代碼,並且這個要追加的字符長度是由自己控制的。

聽起來還不錯,是不是。。。(*^__^*) 嘻嘻……

#include<stdio.h>

#include<assert.h>


char *my_strncat(char *dest, const char *src, unsigned int n)

{

assert(dest);

assert(src);

char *ret = src;//標記src的首地址,是因爲src在下面要參與運算

while (*dest)

{

dest++;

}

while (n)//你想追加的字符串長度

{

*dest++ = *src++;

n--;

}

*dest = '\0';

return ret;



}


int main()

{

char p1[20] = "hello";

char p2[20] = "world";

int n = 0;

scanf("%d",&n);

char *ret = my_strncat(p1, p2, n);

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

system("pause");

return 0;

}


   值得注意的是,我們在傳參的時候,因爲p2不會發生變化,所以我們要用const對p2字符串進行保護。使用CONST在一定程度上可以提高程序的安全性和可靠性,另外,在別人觀看代碼的時候,清晰理解CONST所起的作用,對理解對方的程序也有一些幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章