strlen与sizeof的区别:
strlen() 函数计算的是字符串的实际长度,遇到第一个'\0'结束。如果你只定义没有给它赋初值,这个结果是不定的,它会从首地址一直找下去,直到遇到'\0'停止。而sizeof返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个操作符,strlen()是函数。
取得字符串的长度。
代码1:
#include<stdio.h>
#include<string.h>
int Strlen(const char *str)
{
if(*str=='\0')
return 0;
else return 1+Strlen(str+1);
}
int main()
{
char *p="abcdef";
int len=Strlen(p);
printf("%d\n",len);
return 0;
}
代码2:
#include<stdio.h> #include<string.h> int main() { char *str1="abcdef"; char *str2="12345"; printf("strlen(str1)=%d,sizeof(str1)=%d\n",strlen(str1),sizeof(str1)); printf("strlen(str2)=%d,sizeof(str2)=%d\n",strlen(str2),sizeof(str2)); return 0; }