1.size()、lenth()、sizeof()、strlen()的区别
1.1sizeof()、strlen()
sizeof(…)是运算符,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小,可能不是实际大小。由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。
strlen(…)是函数,要在运行时才能计算。参数必须是字符型指针(char*),且必须以"\0"结尾。当数组名作为参数传入时,实际上数组就退化成指针了。它的功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符’\0’。返回的长度大小不包括’\0’,返回的是字符串的真实长度。
sizeof(字符串str)个数要带 '/0',strlen(字符串str)个数不带 '/0'
int main()
{
char *str1 = "abcdef";
char str2[] = "ab\0cd";
printf("sizeof(str1)=%d\n",sizeof(str1));//4
printf("strlen(str1)=%d\n",strlen(str1));//6
printf("sizeof(str2)=%d\n",sizeof(str2));//6
printf("strlen(str2)=%d\n",strlen(str2));//2
return 0;
}
1.2size()、lenth()
C++中size()函数除了跟length()函数一样可以获取字符串长度之外,还可以获取vector类型的长度。
C++中length()函数只能用来获取字符串长度。
str.length()和str.size()是用于求string类对象的成员函数
string str = "ADAS";
vector < int> num(10,5)
int len = str.size();//4
int len = num.size();//10
int len = str.length();//4
2.return返回值
return 0 一般用于函数主程序结束
return 1 表示正确
return -1 表示失败
bool类型的函数返回只有true或者false,即return false return true