c標準庫函數 strcat

來源:互聯網
上載者:User

標籤:

函數原型: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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.