標籤:
函數原型:extern char *strcat(char *dest,char *src)
參數說明:dest為一個目的字串的指標,即被串連的字串(在前),src為一個源字串的指標(在後)。
所在庫名:#include <string.h>
函數功能:把src所指字串添加到dest結尾處實現字串的串連,串連過程覆蓋dest結尾處的‘/0‘。
返回說明:src和dest所指記憶體地區不可以重疊,並且dest必須有足夠的空間來容納src的字串返回指向dest的指標。
其它說明:暫時無。
實現代碼:
char* strcat(char* dest,char* src){ if(src==NULL||dest==NULL) return; char* temp=dest; int i=0; int j=0; while (dest[i]!=‘\0‘) i++; while((dest[i++]=src[j++])!=‘\0‘) ; return temp;}
舉例:
#include <string.h>#include <stdio.h>int main(){ char str1[100]="SKY2098,persist IN DOING AGAIN!"; char *str2="sky2098,must be honest!"; int n=15; char *strtemp; strtemp=strncat(str1,str2,n); //將字串str2中的前n個字元串連到str1的後面 printf("The string strtemp is: %s ", strtemp); return 0;}
在VC++ 6.0 編譯運行:
如果最初為dest分配空間不足時,比如我們這樣:
char *dest="Hello,I am sky2098,I liking programing!"; //這其實是一個常量字串,dest任何一個值在編譯階段就固定了的,不能再改變,比如dest[0]=‘a‘ 出錯。
連接字串時就會發生異常:
通過char *dest="Hello,I am sky2098,I liking programing!";我們只是為dest分配了strlen("Hello,I am sky2098,I liking programing!")+1;個位元組空間,而串連是在dest的“/0”上覆蓋,而此時只有一個“/0”的空間大小,所以無法實現串連功能。
c標準庫函數 strcat