博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php内置函数分析之ucwords()
阅读量:5069 次
发布时间:2019-06-12

本文共 1043 字,大约阅读时间需要 3 分钟。

1 PHP_FUNCTION(ucwords) 2 { 3     zend_string *str; 4     char *delims = " \t\r\n\f\v"; 5     register char *r, *r_end; 6     size_t delims_len = 6; 7     char mask[256]; 8  9     ZEND_PARSE_PARAMETERS_START(1, 2)10         Z_PARAM_STR(str)11         Z_PARAM_OPTIONAL12         Z_PARAM_STRING(delims, delims_len)13     ZEND_PARSE_PARAMETERS_END();14 15     if (!ZSTR_LEN(str)) {16         RETURN_EMPTY_STRING();17     }18 19     php_charmask((unsigned char *)delims, delims_len, mask); // 初始化mask数组,并对上述6个字符执行类似这样的操作:char c='\t';mask[c]=1;20 21     ZVAL_STRINGL(return_value, ZSTR_VAL(str), ZSTR_LEN(str)); //初始化函数返回值return_value22     r = Z_STRVAL_P(return_value); //新字符串首地址23 24     *r = toupper((unsigned char) *r); //将新字符串首字符大写转换25     for (r_end = r + Z_STRLEN_P(return_value) - 1; r < r_end; ) {
//一次遍历每个字符26 if (mask[(unsigned char)*r++]) { // 字符如果是上述6个之一,则该字符后面的字符进行大写转换27 *r = toupper((unsigned char) *r);28 }29 }30 //结束之后,将返回return_value31 }

 

转载于:https://www.cnblogs.com/natian-ws/p/9091401.html

你可能感兴趣的文章
火狐、谷歌、IE关于document.body.scrollTop和document.documentElement.scrollTop 以及值为0的问题...
查看>>
基于Lucene3.5.0怎样从TokenStream获得Token
查看>>
一网打尽各类Java基本数据类型转换
查看>>
FlowLayout布局
查看>>
深入理解JVM读书笔记--字节码执行引擎
查看>>
vue-搜索功能-实时监听搜索框的输入,N毫秒请求一次数据
查看>>
批处理 windows 服务的安装与卸载
查看>>
React文档翻译 (快速入门)
查看>>
nodejs fs路径
查看>>
动态规划算法之最大子段和
查看>>
linux c:关联变量的双for循环
查看>>
深入浅出理解zend framework(三)
查看>>
python语句----->if语句,while语句,for循环
查看>>
javascript之数组操作
查看>>
一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别...
查看>>
C#6新特性,让你的代码更干净
查看>>
LinkedList源码分析
查看>>
TF-IDF原理
查看>>
用JS制作博客页面背景随滚动渐变的效果
查看>>
JavaScript的迭代函数与迭代函数的实现
查看>>