#include<stdio.h>
#include<string.h>
int main(){
char *str="123qwerty";
printf("len=%d\n",strlen(str));//strlen不包含\0,是实际占有效长度
printf("len=%d\n",strlen(str+3));//从偏移的第三个开始计算
printf("size=%d\n",sizeof(str));//指针在32位机下位4字节,在64位机下为8字节
printf("size=%d\n",sizeof(str+3));
return 0;
}
数据结果为:9 6 8 8
#include<stdio.h>
#include<string.h>
int main(){
char arr[10]="1234567";
printf("len=%d\n",strlen(arr));//7
printf("size=%d\n",sizeof(arr));//10,为字符数组原来开辟的空间
char arr1[]="12345";
printf("len=%d\n",strlen(arr1));//5
printf("size=%d\n",sizeof(arr1)); //6,'\0'占一个字节
char arr2[]="12345\012abcd";
printf("len=%d\n",strlen(arr2));//10,\012是八进制的10,是'\n'的ASCLL码
printf("size=%d\n",sizeof(arr2)); //11
char arr3[]="12345\0abcabc";
printf("len=%d\n",strlen(arr3));//5,遇到'\0'结束,当'\0'后不是数字是时
printf("size=%d\n",sizeof(arr3));//13
return 0;
}
在用时,要有头文件string.h