zoukankan      html  css  js  c++  java
  • [PHP源码阅读]strtolower和strtoupper函数

    字符串的操作函数中,字符串的大小写转换也算是比较常用的函数,其底层实现也比较简单,下面来一探究竟。

    我在github上有对PHP源码更详细的注解。感兴趣的可以围观一下,给个star。PHP5.4源码注解。可以通过commit记录查看已添加的注解。

    strtolower

    string strtolower ( string $string )

    将字符串转换成小写字符。

    strtoupper

    string strtoupper ( string $string )

    将字符串转换成大写字符。

    运行示例

    $str = 'Hello World';
    $new_str = strtolower($str); // hello world
    
    $str = 'hello world';
    $new_str = strupper($str); // HELLO WORLD

    代码运行步骤

    拷贝一份字符串

    php_strtolower/php_strtoupper进行转换

    源码解读

    两个函数的核心操作都差不多,讲一下strtolower,另一个是类似的。
    php_strtolower函数的核心代码如下:

    c = (unsigned char *)s;
    e = c+len;
    
    // 遍历s,逐个变为小写
    while (c < e) {
      *c = tolower(*c);
      c++;
    }
    return s;

    这个函数就是遍历整个字符串,逐个转成小写字符。这也是一个经典的指针操作。

    原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。

    如果本文对你有帮助,请点下推荐吧,谢谢^_^

    最后再安利一下,我在github有对PHP源码更详细的注解。感兴趣的可以围观一下,给个star。PHP5.4源码注解。可以通过commit记录查看已添加的注解。

    更多源码文章,欢迎访问个人主页继续查看:hoohack

  • 相关阅读:
    Java基础--第二十六天
    Java基础--第二十五天
    Java基础--第二十四天
    Java基础--第二十三天
    Java基础--第二十二天
    Java基础--第二十一天
    Java基础--第二十天
    Java基础--第十九天
    Java基础总结--待续
    docker学习笔记
  • 原文地址:https://www.cnblogs.com/hoohack/p/5551804.html
Copyright © 2011-2022 走看看