我试图在PHP中编写一个函数,它根据给定的偏移量将字符串转换为编码字符串。
例如:
如果偏移为2
且输入为c
,则输出为e
同样,如果偏移为5
且输入为X
,则输出为c
function encode($char,$offset)
{
$char_list = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$_offset = strpos($char_list,$char) + $offset;
if($offset > strlen($char_list )){
$_offset = _$offset - $offset;
}
return $char_list[$_offset];
}
所需结果:
encode("a",0) // must returns a
encode("c",5) // must returns h
encode("X",9) // must returns g
答案 0 :(得分:1)
if
块内新偏移量的计算不正确,您应该减去字符串的长度,而不是偏移量。但最好使用modulo operator:
function encode($char,$offset) {
$char_list = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$_offset = strpos($char_list,$char) + $offset;
$_offset = $_offset % strlen($char_list);
return $char_list[$_offset];
}