c語言兩個字符串連接 c語言怎樣拼接字符串?
c語言怎樣拼接字符串?#Includeintmain(void){char*STR1=“12345”char*STR2=“abcdefghi”inti=0while(STR1=“0”){strncpy
c語言怎樣拼接字符串?
#Include
intmain(void)
{
char*STR1=“12345”
char*STR2=“abcdefghi”
inti=0
while(STR1=“0”){
strncpy(STR1,STR2,I)
STR I
}
STR1[I length(STR2)]=“0”
printf(%sn”,STR1)
getch()
return0
}~char out[]=“”和char out[4];僅數(shù)組大小的差異。
事實上,這兩個程序都有問題。使用strcat函數(shù)連接字符串時,必須確保連接后的目標字符串不越界。
Char out[]=“”相當于Char out[1]=“0”,
Char out[4]用于存儲字符串時,允許存儲最多三個字符的字符串,否則會造成“交叉”,后果不可預(yù)知。圖1中的情況可能是由于其他程序語句造成的。
為了達到程序的預(yù)期效果,至少char out[7](實際可以大一點)
C語言實現(xiàn)兩個字符串的拼接?
int main(int argc,const char*argv[]應(yīng)該設(shè)置{
//第五個字符應(yīng)該分成兩個字符串,C語言
char a[100]=“ABCDEFGHIJKLMN”
char b[100
]strncpy(b,a,5)
int i
for(i=0 i< strlen(a)i){
]a[i]=a[i]5]
}
puts(b)
puts(a)
return 0
}
C語言字符串操作類似于內(nèi)存操作,特別是合并操作,我們必須避免內(nèi)存越界錯誤。
以這個問題為例,寫一個偽代碼作為參考。
Char STR1[M
]Char STR2[n
]Char strdst[M n 1
]STR1和STR2可以組合使用,以借用strcat函數(shù)。strcat函數(shù)的原型是char*strcat(char*DST,char*SRC)。此函數(shù)的限制條件是DST和Src的地址不能相同,并且DST的長度足以容納DST和Src的內(nèi)容。
此外,請注意三個字符串長度之間的相關(guān)性。然后按以下步驟操作。
Strcat(strdst,STR1)
Strcat(strdst,STR2)
我希望我的回答能對主題有所幫助。