int my_strlen(const char* str)//因为指针求字符串长度不能改变原字符串,所以加const修饰,使得程序运行更安全(没加const也不影响程序运行) { assert(str != NULL);//断言,判断指针是否为空(NULL) int count = 0;//计数器 while (*str != '\0')//解引用看是否为'\0';不是'\0'就进入while循环 ...
//用字符串1的每一个元素和字符串2对应的元素做比较(字符串1元素的ASICC值 - 对应字符串2元素的ASICC值),当比较的结果不为0时,结束,或者当两个字符串对应的元素都 //自定义实现计算字符串的长度 unsignedlongmyStrlen(charstring[]) { unsignedlonglength =0; while(string[length] !='\0') { length++;...
此时可以看到, strlen返回其实就是存在字符串类型结构体里的长度. 同时, 通过查看zend_string.h的代码也发现, 申请内存, 其实用的也是该长度
在PHP中,函数strlen()返回字符串的长度,strlen()函数返回字符串所占的字节长度,一个英文字母、数字、各种符号均占一个字节,它们的长度均为1 那么实现原理是什么呢? 在Zend\zend_types.h 的 801 -808行 我们能找到: #defineZ_STR(zval)(zval).value.str ...