數(shù)組里面貌似沒有,只有字符串拼接,不過這中簡單的變換你完全可以自己寫個函數(shù)嘛
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計、淮上網(wǎng)絡(luò)推廣、小程序制作、淮上網(wǎng)絡(luò)營銷、淮上企業(yè)策劃、淮上品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供淮上建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:vcdvsql.cn
int main() {
char a[] = "123456";
char b[] = "abcde";
int buflen = strlen(a) + strlen(b);
char *p = (char*)malloc(buflen + 1);
memset(p, 0, buflen);
printf("%d\n", buflen);
strcpy(p, a);
strcat(p, b);
printf("%s\n", p);
free(p);
}
C的數(shù)組在創(chuàng)建后不可變得,因此數(shù)組合并的思想就是把數(shù)組塞到一個足夠大的空間里形成新嫌余數(shù)組。
上面的函數(shù)是比較簡單的合睜者譽并方悉段法
首先你不能直接用靜態(tài)數(shù)組連接,因為你無法控制編譯器如何分配內(nèi)存,事實上分配在堆上的數(shù)組是由操作系統(tǒng)分配的,因此你不能指望兩個數(shù)組是連續(xù)排列的,所以連接數(shù)組只能重新分配一個能包容兩個數(shù)組元素的新數(shù)組,并將兩個數(shù)組的元素復(fù)制過去,然后釋放掉原先的數(shù)組。
用動態(tài)數(shù)組實現(xiàn)以下核心代碼:
int?*?Link(int?*a,int?lenA,int?*b,int?lenB)?{
int?*p=new[lenA+lenB];//新建一個數(shù)組,數(shù)組大小為兩數(shù)組總和
int?*pp=p;//運算指針
//復(fù)制數(shù)組不要自己使用循環(huán),那樣效率很低,應(yīng)該采用庫函數(shù)中的memcpy。
memcpy(pp,a,lenA*sizeof(int));//將數(shù)組a復(fù)制到新建內(nèi)存首地址
memcpy(pp+lenA,b,lenB*sizeof(int));//將數(shù)組b復(fù)制到前數(shù)組尾部
//如果需要,釋放數(shù)組a和b,當然如果是靜態(tài)分配的數(shù)組,下面兩句可注釋掉
delete?[]a;
delete?[]b;
return?p;
}
其中sizeof(int)取整型類型的字節(jié)寬度,當然你可以直接寫4,但是不同編譯器不同操作系統(tǒng)int類型的字節(jié)寬度可能不同,養(yǎng)成使用sizeof取類型寬度可以使你的代碼具有很好的兼容性,減少意外。
復(fù)制后指向會改變,我們還需要將p返回給調(diào)用者,因此不可以直接使用p進行復(fù)制,需要建一個指針pp,復(fù)制p的值,利用pp復(fù)制數(shù)組。
pp+lenA可以讓pp指向復(fù)制后的數(shù)組a的尾部,在后面的位置復(fù)制b數(shù)組。
strcat是字符串拼接函數(shù),不是數(shù)組拼接函數(shù),所以不能用行數(shù)于拼接兩個數(shù)組。
可以用以下方法:
用數(shù)組沖帶渣的話用memcpy。
用循散悄環(huán)把所有數(shù)組元素重新拷貝。
直接當字符串輸入。
文章題目:c語言拼接數(shù)組的函數(shù) c語言拼接數(shù)組的函數(shù)有哪些
分享鏈接:http://vcdvsql.cn/article12/ddpejdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、手機網(wǎng)站建設(shè)、軟件開發(fā)、服務(wù)器托管、全網(wǎng)營銷推廣、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)