以下是一个连接字符串功能的代码模板,
#include<stdio.h>
void conj(char *p1,char *p2)
{
while(*p1)//p1指向元素的为0时跳出循环,也可以说是为空时,这也就是p1指向数组s1的末尾后一位时
p1++;//指针p1自增,指向下一个元素,一直往后到数组末尾后一位
while(*p2)//同理到s2数组末尾时跳出
{
*p1=*p2;//s2的数组第一位赋于s1数组末尾后一位的空位,刚好连上,后面不断的就都连入了数组s1
p1++;//指针往后移
p2++;
}
*p1='\0';//这句话是因为打印时,puts 遇到'\0'才会停止打印,不然会往后面打印出一些乱码
}
int main()
{
char s1[80],s2[80];//注意数组大小
gets(s1);
gets(s2);
conj(s1,s2);
puts(s1);
return 0;
}
这是之后过了一段时间写的,感觉还是不如上面那个模板,不过感觉更容易看懂一些,没用什么指针:
#include<stdio.h>
void m(char *a,char *b)
{
int i=0,k;
while(a[i]!='\0')//这里找数组的最后一位,没上面处理的好,除此之外大致相同
{
i++;
k=i;
}
i=0;
while(b[i]!='\0')
{
a[k]=b[i];
k++;
i++;
}
a[k]='\0';
puts(a);
}
int main()
{
char a[10];
gets(a);
char b[10];
gets(b);
m(a,b);
return 0;
}
拓展:
说几个常用的读取到’\0’就会停止的函数:
strlen() //读取字符串函数
puts()
printf() //不过可以用循环打印
题外话:
逐渐喜欢上了使用puts,毕竟他是真的很简洁啊