strlen()———字符串处理函数:计算字符串中包含字符的长度
strlen 函数原型 size_t strlen(const char * str);
size_t相当于unsigned int
注:strlen算出来的长度不包括‘\0’
sizeof和strlen()的区别(字符串当中):
sizeof:所计算出来的数值为该数组所占内存的大小(所长字节的个数)。
strlen()所计算出来的数值为数组中有字符的数组单元的个数(不包括‘\0’)。
#include<stdio.h>
#include<string.h>
int main()
{
char ch[100];
scanf("%s", ch); //输入:abcde
printf("%d\n", sizeof(ch)); //输出:100
printf("%d\n", strlen(ch)); //输出:5
return 0;
}
当用于并非事先定义好数组大小时两者区别:
sizeof会加上位于字符串结尾的’\0’
strlen()则不加上末尾的’\0’
即:在数值上表示为sizeof比strlen()多1
#include<stdio.h>
#include<string.h>
#define PRAISE "What a super marvelous name"
int main()
{
char ch[] = "hello world";
printf("%d\n", sizeof(PRAISE)); //输出:29
printf("%d\n", strlen(PRAISE)); //输出:28
printf("%d\n", sizeof(ch)); //输出:11
printf("%d\n", strlen(ch)); //输出:10
return 0;
}