字符串求字节数和长度




sizeof求后面的内容or表达式所占用的字节数


strlen求字符串的有效长度,只要遇到'\0'就认为字符串结束


int main()


{


      charstr1[100]="abcdef";//100,6


      printf("%d,%d\n",sizeof(str1),strlen(str1));


      分析:定义 char 类型的str1,初始赋值时定义了100个单元格,


           char 类型是1个字节,100个单元格的 char 类型共有100个字节数;


           字符串"abcdef"6个字符,6个字母后是'\0',即有效长度是6


 


      char*str2="abcdef";//4,6


      printf("%d,%d\n",sizeof(str2),strlen(str2));


      分析:定义 char 类型的str2,初始赋值时定义为字符串,


           char *是指针类型,4字节,与后面的所占单元格个数无关;


           字符串"abcdef"6个字符,6个字母后是'\0',即有效长度是6


 


      charstr3[]="abcdef";//7,6


      printf("%d,%d\n",sizeof(str3),strlen(str3));


      分析:定义 char 类型的str3,初始赋值时定义为字符串,字符串占有7个单元格,


            char 类型是1个字节,7个单元格的 char类型共有7个字节数;


           字符串"abcdef"6个字符,6个字母后是'\0',即有效长度是6


 


      charstr4[100]="abcde\0fgh";//100,5


      printf("%d,%d\n",sizeof(str4),strlen(str4));


      分析:定义 char类型的str4,初始赋值时定义了100个单元格,


           char 类型是1个字节,100个单元格的 char类型共有100个字节数;


           字符串"abcde\0fgh"9个字符,但第5个字符后是'\0',即有效长度是5


 


      charstr5[]="abcde\0fgh";//10,5


      printf("%d,%d\n",sizeof(str5),strlen(str5));


      分析:定义 char类型的str5,初始赋值时定义为字符串,字符串占有10个单元格,


            char 类型是1个字节,10个单元格的 char 类型共有10个字节数;


           字符串"abcde\0fgh"9个字符,但第5个字符后是'\0',即有效长度是5


 


      char*str6="abcde\0fgh";//4,5 


      printf("%d,%d\n",sizeof(str6),strlen(str6));


      分析:定义 char类型的str6,初始赋值时定义为字符串,


           char *是指针类型,4字节,与后面的字符串所占单元格个数无关;


           字符串"abcde\0fgh"9个字符,但第5个字符后是'\0',即有效长度是5


 


      return0;


}


 



 



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值