• 《C库 — strlen和sizeof》


    1.strlen函数

      strlen 函数用来求字符串的长度(包含多少个字符)。
      strlen() 函数从字符串的开头位置依次向后计数,直到遇见,然后返回计时器的值。最终统计的字符串长度不包括。

    头文件:string.h
    语法/原型:
    size_t strlen(const char* str);
    参数 str 表示要求长度的字符串。

    实例:

    #include <stdio.h>
    #include <string.h>
    int main(){
        char str[100] = { 0 };
        size_t len;
        gets(str);      //gets() 函数的功能是从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间。
        len = strlen(str);
        printf("Length: %d
    ", len);
        return 0;
    }
    

      结果:  

      

    2.strlen的函数实现(C语言)

    #include <stdio.h>
    #include <assert.h>
    int strlen_new(const char* src)
    {
        int len = 0;
        assert(src);
        while(*src++ != '')
            len ++;
        return len;
    }
    int strlen_new1(const char* str)
    {
        const char *temp = str;
        assert(str);
        while(*str ++ !='');
        /*通过地址长度来取得*/
        return str - temp -1;
    }
    

      

    3.sizeof  

      sizeof是c语言中用来求字节运算符。(注意是运算符不是函数)

      作用:求出对象在计算机内存中所占用的字节数。

    int main(int argc, char *argv[])
    {
      char array[10] = {0};
      char *s = "zhuangquan";  
    
      sizeof(array);
      sizeof(s);    
    }
    

      第一个输出是10,第二个是4(如果用的是32位的系统)。

      解释一下为什么数组是10。数组在程序编译阶段就会计算出数组的长度,然后就跟数组名绑定在一起了。

      从编译器角度来讲,数组变量也是变量,和普通变量和指针变量并没有本质不同。变量的本质就是一个地址,这个地址在编译器中决定具体数值,具体数值和变量名绑定,变量类型决定这个地址的延续长度(整形4字节、字符型1字节)。

    4.sizeof和strlen的区别

      strlen计算不包含终止null字节的字符串长度。

      sizeof则计算包括终止null字节的缓冲区长度。

      两者之间的另一个差别是,使用strlen需进行一次函数调用,而对于sizeof而言,因为缓冲区已用已知字符串进行初始化,其长度是固定的,所以sizeof是在编译时计算缓冲区长度。

      

      输出结果:

      

  • 相关阅读:
    Sel4:显示等待
    Sel4:css定位,id,class,属性,层级
    Sel3:鼠标操作,右键,悬停,双击操作
    Sel2:Xpath定位
    Se1:css定位
    八:Appium元素UIAutomator定位方式
    七:Appium元素list定位方式
    六:Appium元素定位xpath定位方式
    五:Appium元素‘相对定位’定位方式
    四:Appium元素className定位方式
  • 原文地址:https://www.cnblogs.com/zhuangquan/p/10719172.html
Copyright © 2020-2023  润新知