1. 字符串的长度就是字符串所包含字符的个数
2. C语言中的字符串长度指的是第一个’\0’字符前出现的字符个数
3. C语言中通过’\0’结束符来确定字符串的长度
*************************************************************************
//strlen函数的实现
size_t strlen(const char* s)
{
size_t length = 0;
assert(s);
while(*s++)
{
length++;
}
reurtn length;
}
**********************************************************************
警告:
char* a = "123";
char* b = "1234";
if( strlen(a) >= strlen(b))
{
//... ...
}
if( strlen(a) - strlen(b) >= 0)
{
//... ...
}
strlen的返回值是用无符号数定义的,因此
相减不可能产生负数,以上的语句不等价。
***********************************************************************
***********************************************************************
使用一条语句实现strlen
#include <stdio.h>
#include <assert.h>
size_t strlen(const char* s)
{
return (assert(s),(*s ? (strlen(*s + 1)+1) : 0));
}
int main()
{
printf("%d\n",strlen("123456"));
return 0;
}
***********************************************************************
/*字符数组和字符串长度的区别*/
#include <stdio.h>
#include <string.h>
char g[100];
int main()
{
g[0] = 'H';
g[1] = 'e';
g[2] = 'l';
g[3] = 'l';
g[4] = 'o';
g[5] = '\0';
g[6] = 'H';
g[7] = 'e';
g[8] = 'l';
g[9] = 'l';
g[10] = 'o';
printf("length = %d\n",strlen(g));//字符串
printf("size = %d\n", sizeof(g));//字符数组
return 0;
}
编译结果: