strlen
size_t strlen( const char *string );
1 字符串以 \0 作为结束标志,strlen函数返回的是 \0之前出现的字符个数
2 字符串必须以 \0 结束
3 返回值为 size_t ,是无符号类型
strcpy
char *strcpy( char *strDestination, const char *strSource );
1 源字符串必须以 \0结束
2 会将源字符串的 \0拷贝到源字符串
3 目标空间必须足够大且是可变的
书写函数模拟实现
#include<stdio.h>
#include<string.h>
#include<assert.h>
char *my_strcpy(char *s1,const char *s2)
{
assert(s1!=NULL);
assert(s2!=NULL);
char *ret=s1;
while(*s2!='\0')
{
*s1=*s2;
s1++;
s2++;
}
*s1=*s2;//将\0拷贝过去了
return ret;
}
int main()
{
char a1[]="*****************";
char a2[]="helloworld";
strcpy(a1,a2);
printf("%s",a1);
return 0;
}
assert函数是为了保障s1和s2不为空指针
最后拷贝的为符号\0
返回为目标空间的起始地址
另一种形式为
char *my_strcpy(char *s1,const char *s2)
{
assert(s1&s1);//任意一个指针均不能为假
char *ret=s1;
while(*s1++=*s2++) //拷贝字符串,包括\0
{
;
}
return ret;//返回的是目标空间的起始地址
}
strcat-字符串追加
char *strcat( char *strDestination,