strlen sizeof strcat strcpy区别

Posted guang_blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了strlen sizeof strcat strcpy区别相关的知识,希望对你有一定的参考价值。

strlen(p):

  • 能计算出p指向字符串的长度(以当前p的位置开始),不包含终止字符‘\0‘;
  • p可以声明为char* p或者char p[],这两种形式strlen均能正确计算。

sizeof(p):

  • sizeof是一个操作符,非函数,其值在编译期确定,因此当p声明为某一类型指针时,sizeof在编译时并不能确定指向内容的大小,故返回的是指针类型本身的大小;

当p声明为某一类型数组时,sizeof在编译时即可确定指向内容的大小,故返回的是数组所占容量;

 

strcat(p1,p2)和strcpy(p1,p2)

相同点:

  • p1必须为内容可改变的指针,如char p1[]
  • 当p1当前指向的字符为终止字符(‘\0‘)时,直接用p2内容连接或覆盖在p1当前位置及其后

不同点:

  • 当p1当前指向的字符不是终止字符(‘\0‘)时,strcat会自动将p2的内容连接在终止字符所在位置及其后;strcpy则直接用p2内容覆盖p1当前指向的内容。

以上是关于strlen sizeof strcat strcpy区别的主要内容,如果未能解决你的问题,请参考以下文章

strlen,strcat,strcpy,strcmp的实现

strlen() strcpy() strcat() strcmp()实现

strcpy strcat strlen实现

strlen strcat strcpy strcmp 自己实现

C深度剖析自实现 strcmp strlen strcpy strcat

常用函数strcpy strcat strcmp strlen memcpy memset