字符串反转,但单词不反转

题目:字符串反转,但是单词不反转,不能用内库函数但是可以用(strlen)


demo:I am coder 结果:coder am I


本来一个用库函数:

<!-- lang: php -->
   <?php
    $str="I am coder !";
    echo implode(' ',array_reverse(str_word_count($str,1)));
    ?>

只能用最简单的算法 1.那整体反转 2.找到每一个单词反转过来

<!-- lang: php -->
<?php
/**
  *@param $str(string type)
  *@function reverse $str but the word is not.
  *@return reverse string 
  *@time 2014-05-13
  *@version 1.0
 **/
function str_reverse($str=""){
  $j=strlen($str);
  $i=0;
  //if string len <2 return self
  if($j<2){
    return $str;
  }
  //first reverse string all
  while($i<$j){
    $tmpchar=$str[$i];
    $str[$i]=$str[$j];
    $str[$j]=$tmpchar;
    $j--;
    $i++;
  }
  //printf(" string=%s\n",$str);
  //second only reverse word 
  $i=0;
  while($str[$i]){
    if($str[$i]!=' '){
      $begin=$i;
      while($str[$i]&&$str[$i]!=" "){
        $i++;
      }
      $i--;
      $end=$i;
      while($end>$begin){
        $tmpchar=$str[$end];
        $str[$end]=$str[$begin];
        $str[$begin]=$tmpchar;
        $end--;
        $begin++;
      }
    }
    $i++;
  }
  //printf(" string=%s\n",$str);
  return $str;
}
//one test
$str="I";
echo str_reverse($str),"\n";
//two test
$str="I am coder";
echo str_reverse($str),"\n";
//third test
$str="I am coder!";
echo str_reverse($str),"\n";
//four test
$str="I am coder !";
echo str_reverse($str),"\n";
?>

运行结果(PHP 5.2.10 (cli) (built: Dec 31 2011 17:20:47) )


I


coder am I


coder! am I


! coder am I

转载于:https://my.oschina.net/u/242853/blog/264368

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值