//实现两个字符串的链接
#include<stdio.h>
int main(){
void stringcat(char *p1,char *p2);//函数声明
char str1[100],str2[100];
gets(str1);//输入字符串str1
gets(str2);//输入字符串str2
stringcat(str1,str2);//调用stringcat函数,实现两个字符串的连接
int k=0;
while(str1[k]!='\0'){
printf("%c ",str1[k]);//输出将str2连接到str1之后的,str1的各个字符,中间以空格分隔;
k++;
}
}
void stringcat(char *p1,char *p2){//形参指针变量p1,p2,分别接收实参字符串str1,str2的首地址 ;
int i=0,j=0;
while(*(p1+i)!='\0'){//将指针从首地址每次循环往后偏移一个单位,直到读取到'\0'字符结束;
i++;
}
//第一个while循环结束后,*(p1+i)指向字符串str1的末端, 也即 '\0';
while(*(p2+j)!='\0'){//p2指针逐渐向后偏移一个单位,遇到'\0'结束循环
*(p1+i)=*(p2+j);//将指针变量(p1+i)所指向的存储单元赋 指针变量(p2+j)所指向的存储单元的数据;
i++;
j++;//指针往后偏移一个单位
}
*(p1+i)='\0';//最后加上字符串结束符号'\0';
}