PHP源码阅读笔记二:strlen, strtolower, strtoupper, ord, chr函数
int strlen ( string string )
返回字符串的长度
在标准扩展中并没有相关的实现,在其它扩展函数中使用Z_STRLEN、Z_STRLEN_P或Z_STRLEN_PP取得长度
string strtolower ( string str )
将一个字符串变为小写,其实现如下代码
【经典源代码】
1 2 3 4 5 6 7 8 9 10 11 12 13 | char *php_strtolower(char *s, size_t len) { unsigned char *c, *e; c = s; e = c+len; while (c < e) { *c = tolower(*c); c++; } return s; } |
这虽然是一个简单的遍历字符串并将每个字符变为小写的程序,但是这是一个使用指针的标程。
string strtoupper ( string string )
将一个字符串变为大写
代码实现与上面的程序类似只是将tolower函数变成了toupper
string chr ( int ascii )
返回相对应于 ascii 所指定的单个字符。
其本质是返回一个长度为1的字符串
【源代码】
1 2 3 | temp[0] = (char) Z_LVAL_PP(num); temp[1] = 0; RETVAL_STRINGL(temp, 1, 1); |
int ord ( string string )
返回字符的ASCII值
其本质上是返回字符串第一个字符的ASCII值
【源代码】
1 | RETURN_LONG((unsigned char) Z_STRVAL_PP(str)[0]); |
请问strlen是怎么实现的?源码中貌似找不到相关代码。