strcat的c++实现

来源:百度知道 编辑:UC知道 时间:2024/05/21 08:16:48
函数原型 char *strcat(char *str,const char *ptr)
要求 动态分配内存 不使编译器出错(vs6.0环境)

注意:没有对s1数组的大小进行判断,所以你应先计算一下,确保两个字符串的总长度不超过第一个数组的容量!
事实上,你使用库函数strcat()函数,它也不对是否越界进行判断,所以就功能而言,我的这个函数跟那个库函数是完全一样的。

#include<iostream.h>
char * mystrcmp(char *s1,const char *s2)
{
int i=0,j=0;
while(s1[i]!='\0')
i++;
while(s2[j]!='\0')
{
s1[i]=s2[j];
i++;
j++;
}
return s1;
}
//一个测试程序:
main()
{
char a[20]="abcd",b[10]="efg";
mystrcmp(a,b);
cout<<a<<endl;
return 0;
}

char * strcat (
char * dst,
const char * src
)
{
char * cp = dst;

while( *cp )
cp++; /* find end of dst */

while( *cp++ = *src++ ) ; /* Copy src to end of dst */

return( dst ); /* return dst */

}