比较 strlen(str)和 sizeof(str)的不同
本帖最后由 jun 于 2013-10-26 22:04 编辑#include <STDIO.H>
#include "string.h"
int main()
{
int x = 0;
char str ;
// strlen()以'\0',作为结束标志,故strlen(str)不确定
x = strlen(str);
printf("strlen of str is: %d \n",x);
x = sizeof(str);
//而sizeof(str)==10
printf("sizeof of str is: %d \n",x);
char str2[] = "0123456789"; // 会自动添加一个结束符'\0'
// strlen()以'\0',作为结束标志,故strlen(str2)==10
x = strlen(str2);
printf("strlen of str2 is: %d \n",x);
x = sizeof(str2);
//而sizeof()则会把'\0'也计算在内,sizeof(str2)==10
printf("sizeof of str2 is: %d \n",x);
return 0;
}
求交流,求指导{:5_91:}
简而言之就是sizeof()是计算一个字符串的大小strlen()是计算一个字符串中字符的个数(不包括'\0') 牡丹花下死做鬼 发表于 2013-10-26 22:14 static/image/common/back.gif
简而言之就是sizeof()是计算一个字符串的大小strlen()是计算一个字符串中字符的个数(不包括'\0')
strlen()计算一个字符串中字符的个数(不包括'\0'),以‘\0’作为结尾标志而且不包括'\0',这个可以肯定,但是sizeof()是计算一个字符串的大小,还是有点疑问,如,开始char str,那么sizeof(str)==10,但是如果,你执行strcpy(str,"111122223333")后,依旧有sizeof(str)==10,
问题:sizeof()是以什么作为结束标志
页:
[1]