strcat函数 字符串 拼接函数
#include<bits/stdc++.h>
using namespace std;
void Mystrcat(char *str1,char *str2)
{
while(*str1)str1++;//到第一个字符串的末尾
while(*str1++=*str2++);//将第二个字符串拼接到第一个字符串的末尾
}
int main()
{
char str1[1024];
char str2[1024];
cin>>str1;//输入字符串1
cin>>str2;//输入字符串2
Mystrcat(str1,str2);//进行拼接
cout<<str1<<endl;//输出拼接后的字符串
}
memcpy函数 字符串赋值函数
#include<bits/stdc++.h>
using namespace std;
void *mencp2(void *dst,const void *src ,size_t size)
{
if(dst==NULL||src==NULL) return NULL;//为空直接拜拜
char *pdst,*psrc;
if(src<dst||(char*)dst<(char *)src+size)//src的地址在dst的前面 并且 dst 的起始地址要小于src+需要赋值的长度size
{//发生内存覆盖问题,从后往前进行赋值
pdst=(char *)dst+size-1;
psrc=(char *)src+size-1;
while(size--)
{
*pdst-- = *psrc--;
}
}
else
{//正常从前往后进行赋值
pdst=(char * )dst;
psrc=(char * )src;
while(size--)
{
*pdst++ = *psrc++;
}
}
return dst;
}
int main()
{
char buf[100] = "abcdefghijk";
mencp2(buf+2, buf, 5);//从buf+2的地址上开始 赋予buf的前五个数
printf("%s\n", buf);
return 0;
}
strcpy函数
#include<bits/stdc++.h>
using namespace std;
char * Mystrcpy(char * dst ,char *src)
{
if(dst==NULL||src==NULL)
{
return NULL;
}
char *p=dst;
while( (*p++ = *src++ ) !='\0');//碰到\0结束
return p;
}
int main()
{
char buf[100] ;
Mystrcpy(buf, "123");
printf("%s",buf);
return 0;
}