「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 }