PHP程序无需使用库函数即可将字符串转换为大写

给定一个字符串,我们必须在不使用任何库函数的情况下将其转换为大写字符串。

PHP代码:

<?php
//函数定义
//此函数接受字符串/文本,转换
//将文本转换为大写并返回转换后的大写字符串
function upperCase($str)
{
    $chars  = str_split($str);
    $result = '';
    
    //从第0个字符到最后一个字符循环
    for ($i = 0; $i < count($chars); $i++) {
        //提取字符并获取其ASCII值
        $ch = ord($chars[$i]);
        
        //如果字符是小写字母,则转换 
        //将其转换为大写字母
        if ($chars[$i] >= 'a' && $chars[$i] <= 'z')
            $result .= chr($ch - 32);
        
        else
            $result .= $chars[$i];
        
    }
    //最后,返回字符串
    return $result;
}

//函数调用
$text = "hello world";
echo upperCase($text);
echo "<br>";

$text = "Hello world!";
echo upperCase($text);
echo "<br>";

$text = "[email protected]";
echo upperCase($text);
echo "<br>";

?>

输出结果

HELLO WORLD
HELLO WORLD!
[email protected]

代码说明:

我们将字符串($str)转换为字符数组($chars),然后使用ord()函数计算其ASCII值。因为我们知道在ASCII中,大写字符恰好在小写字母之前32位,所以我们从ASCII值中减去32,然后使用chr()函数将其转换回字符。输出存储在$result变量中。

该程序是概念的很好证明。