
C++中getlen()、strlen()、sizeof()三个函数的区别是什么?
2个回答
展开全部
strlen() 这个函数是返回一个字符串中的字符个数,不包括结束符 '\0';
sizeof()()这个函数是返回一个对象或类型所占的内存字节数;
getlen()这个函数查了很多资料都没找到,应该是自己写的一个函数吧。
下面具体说一下strlen()和sizeof()函数。
strlen()函数原型:extern unsigned int strlen(char *s);,在Visual C++ 6.0中,原型为size_t strlen( const char *string );,其中size_t实际上是长整型long。
头文件:string.h
功能:计算字符串s的(unsigned int型)长度
说明:返回s的长度,不包括结束符NULL。
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。
char aa[10];cout<<strlen(aa)<<endl; //结果是不定的
char aa[10]={'\0'}; cout<<strlen(aa)<<endl; //结果为0
char aa[10]="jun"; cout<<strlen(aa)<<endl; //结果为3
而sizeof()函数返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个操作符,strlen是函数。
sizeof(aa) 返回10
int a[10]; sizeof(a) 返回40
sizeof()()这个函数是返回一个对象或类型所占的内存字节数;
getlen()这个函数查了很多资料都没找到,应该是自己写的一个函数吧。
下面具体说一下strlen()和sizeof()函数。
strlen()函数原型:extern unsigned int strlen(char *s);,在Visual C++ 6.0中,原型为size_t strlen( const char *string );,其中size_t实际上是长整型long。
头文件:string.h
功能:计算字符串s的(unsigned int型)长度
说明:返回s的长度,不包括结束符NULL。
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。
char aa[10];cout<<strlen(aa)<<endl; //结果是不定的
char aa[10]={'\0'}; cout<<strlen(aa)<<endl; //结果为0
char aa[10]="jun"; cout<<strlen(aa)<<endl; //结果为3
而sizeof()函数返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个操作符,strlen是函数。
sizeof(aa) 返回10
int a[10]; sizeof(a) 返回40
展开全部
getlen这个函数我没见过哦....msdn里面也没有 strlen 这个函数呢,是返回一个字符串中的字符个数,,不包括结束符 '\0' #include <string.h> #include <stdio.h> #include <conio.h> #include <dos.h> void main( void ) { char buffer[61] = "How long am I?"; int len; len = strlen( buffer ); printf( "'%s' is %d characters long\n", buffer, len ); } Output 'How long am I?' is 14 characters long sizeof..首先我要说的是,这个不是一个函数,是一个运算符.相当于 + - * \....它是系统的一个关键字..跟return int char是一类的..它能够得到一个变量的大小..(按字节计算)... int array[] = { 1, 2, 3, 4, 5 }; // sizeof( array ) is 20 因为array中含有5个int型..一个是4字节..
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询