zoukankan      html  css  js  c++  java
  • 字符串赋值方式理解 sizeof 和strlen的一些区别

    #include<stdio.h>
    #include<string.h> 
    int main()
    {
     int a,i=0;
     char ch[10000];
     while(scanf("%d",&a)!=EOF&&a!=-1)
     {
      ch[i++]=a;
     }
     /*
     测试结果 sizeof 测试的是总空间  包括
     strlen 测试的 是遇到第一个之前的长度
     */
     printf("sizeof计算的长度:%d ",sizeof(ch));
     printf("strlen计算的长度:%d ",strlen(ch));
     char th[]={"abc"};
     puts(th);
     printf("sizeof计算的长度:%d ",sizeof(th));
     printf("strlen计算的长度:%d ",strlen(th));
    // char sh[];
     char sh[]={'a','b','c',''};//char sh[]={'a','b','c'};这是错误的赋值方式 这样赋值后面没有  打印的结果是abcabc   sizeof少一个
    // memset(sh,0,sizeof(sh));
    // sh[0]='a';
     puts(sh);
     printf("sizeof计算的长度:%d ",sizeof(sh));
     printf("strlen计算的长度:%d ",strlen(sh));
    } // 测试数据
    /*
    1 0 2 0 1 0 0 -1
    平常以为长度为 7
    高精度运算时 初始化后为空 所以计算时加字符0 不然他会出事的
    */

  • 相关阅读:
    shell习题第21题:计算数字的个数
    shell习题第20题:统计文件大小
    萌新小白
    编程第一天
    萌新报道
    linux下安装php扩展pdo_oci和oci8
    安装Hadoop伪分布式踩过的坑
    zabbix安装过程
    MySQL_索引
    mysql复制
  • 原文地址:https://www.cnblogs.com/Geek-xiyang/p/5122491.html
Copyright © 2011-2022 走看看