「C語言」「算法」字符串拼接的多種方式,c語言字符串拼接

![]()
1 #include <stdio.h>
2
3 int main(){
4 char str1[20]="Hello ";
5 char str2[20]="World!";
6 char str3[20];
7 puts(strcat(str1,str2));
8 return 0;
9 }
用字符串連接函數處理兩個字符串的合並

![]()
1 #include <stdio.h>
2
3 /*
4 注:不允許使用字符串連接函數
5 編一個程序,輸入3個字符串(長度均不超過20)存入一個二維的字符型數組中,
6 將第3個字符串連接到第二個字符串之後,組成新的字符串存入以為的字符型數組中,
7 然後輸出該新的字符串
8 */
9
10 int main(){
11 char dest[61],str[3][21];
12 int i,j,k;
13 scanf("%s%s%s",str[0],str[1],str[2]);
14 k=0;
15 for(i=0;i<3;i++){
16 for(j=0;j<20;j++){
17 if(str[i][j]=='\0')
18 break;
19 else{
20 dest[k]=str[i][j];
21 k++;
22 }
23 }
24 }
25 dest[k]='\0';
26 printf("%s",dest);
27 return 0;
28 }
用數組循環處理兩個字符串的合並

![]()
1 #include <stdio.h>
2
3 int main(){
4 char str1[80],str2[30],*ptr1=str1,*ptr2=str2;
5 printf("input str1:");
6 gets(str1);
7 printf("input str2:");
8 gets(str2);
9 printf("str1----------str2\n");
10 printf("%s.......%s\n",ptr1,ptr2);
11 while(*ptr1)ptr1++;/* 移動指針到串尾 */
12 while(*ptr2)*ptr1++=*ptr2++;/* 連接串 */
13 *ptr1='\0';/* 寫入串的結束標志 */
14 ptr1=str1;ptr2=str2;
15 printf("str1----------str2\n");
16 printf("%s.......%s\n",ptr1,ptr2);
17 return 0;
18 }
用指向字符串的指針變量處理兩個字符串的合並