杂记之C语言函数strlen和操作符sizeof
2012-11-07 15:35
148 查看
头文件:string.h
格式: strlen (字符数组名)
功能: strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串 结束符'\0'为止,然后返回计数器值。所以说
计算字符串s的(unsigned int型)长度,不包括'\0'在内
strlen的结果要在运行的时候才能计算出来,是用来计算字符串的长度,不是类型占内存的大小。而sizeof()返回的是变量声明后所占的内存数。
说明: 返回s的长度,不包括结束符NULL
大部分编译程序 在编译的时候就把sizeof计算过了是类型或是变量的长度这就是sizeof(x)可以用来定义数组维数的原因
char str[20]="0123456789";
int a=strlen(str); //a=10;
int b=sizeof(str); //而b=20;
sizeof的结果为字节的个数,而不是位数。
补记:(1)char str[20]="0123456789\0aaa";//strlen(str)结果为10,
但是如果是
char str[20]="0123456789\034";//很有可能strlen是转义字符,所以结果为strlen(str)为11;
(2)sizeof(str)/sizeof(str[0])很多情况下并不等于strlen[str],
sizeof 计算的则是分配的数组 str[20] 所占的内存空间的大小,不受里面存储的内容改变。
而strlen 返回的是实际串长,即strlen的结果要在运行的时候才能计算出来。
(3) 在用数组定义字符串时,多定义的空间使得默认初始化为0,char str[20]={"abcdefh"};若不多定义,即char str[7][b]]={"abcdefh"};[/b]
很有可能打印的时候后面出现一些乱码。
格式: strlen (字符数组名)
功能: strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串 结束符'\0'为止,然后返回计数器值。所以说
计算字符串s的(unsigned int型)长度,不包括'\0'在内
strlen的结果要在运行的时候才能计算出来,是用来计算字符串的长度,不是类型占内存的大小。而sizeof()返回的是变量声明后所占的内存数。
说明: 返回s的长度,不包括结束符NULL
大部分编译程序 在编译的时候就把sizeof计算过了是类型或是变量的长度这就是sizeof(x)可以用来定义数组维数的原因
char str[20]="0123456789";
int a=strlen(str); //a=10;
int b=sizeof(str); //而b=20;
sizeof的结果为字节的个数,而不是位数。
补记:(1)char str[20]="0123456789\0aaa";//strlen(str)结果为10,
但是如果是
char str[20]="0123456789\034";//很有可能strlen是转义字符,所以结果为strlen(str)为11;
(2)sizeof(str)/sizeof(str[0])很多情况下并不等于strlen[str],
sizeof 计算的则是分配的数组 str[20] 所占的内存空间的大小,不受里面存储的内容改变。
而strlen 返回的是实际串长,即strlen的结果要在运行的时候才能计算出来。
(3) 在用数组定义字符串时,多定义的空间使得默认初始化为0,char str[20]={"abcdefh"};若不多定义,即char str[7][b]]={"abcdefh"};[/b]
很有可能打印的时候后面出现一些乱码。
相关文章推荐
- sizeof()操作符与strlen()函数
- 动态及静态数组大小,strlen()函数与sizeof()c操作符
- C语言strlen函数和sizeof操作符
- C语言中的sizeof操作符用法及和strlen的区别
- sizeof strlen wcslen tcslen 比较(转)
- sizeof不是函数,是操作符
- sizeof与strlen的区别
- 神奇的sizeof和strlen
- sizeof与strlen的区别
- strlen与sizeof区别
- sizeof()和strlen()的區別
- 让人分不清的sizeof和strlen
- Sizeof与Strlen的区别与联系
- 我也介绍下sizeof与strlen的区别
- strlen与sizeof的区别
- 一些看起来很特殊的for循环代码,以及sizeof和strlen代码运行机制,还有#define
- strlen和sizeof有什么区别
- Sizeof与Strlen的区别与联系
- sizeof、strlen
- strlen与sizeof的区别