PHP面试题-字符串处理

<?php
	
	/*题目要求:输入格式为"get-element-by-id"的任意字符串,将其转换为驼峰命名的字符串,例如getElementById*/
	$str = "get-element-by-id";
	$str1 = "president-donald-trump";
	$str2 = "high-school-student-informantion-management-system";

	function camelCase($str){

		/*仅在第一次调用 strtok() 函数时使用了 string 参数。在首次调用后,该函数仅需要 split 参数,这是因为它清楚自己在当前字符串中所在的位置。*/
		$token=strtok($str,"-");
    
    	$a=array();
		while($token !== false){
			$str_temp = $token;

			/*将分割的子串依次放入数组中*/
			array_push($a,$str_temp);

			/*这一句一定不能少,否则内存溢出*/
			$token=strtok("-");
		}

	//检测是否正确地将字符串分割为子串
	var_dump($a);

	/*遍历字符串数组,将数组中第二个元素开始的字符串的首字符依次转换为大写字母*/
	for($i=1;$i<count($a);$i++){

		$a[$i]=ucfirst($a[$i]);
	}

	/*implode函数把数组元素组合为字符串:*/
	$str_return=implode("",$a);

	echo $str_return."<br></br>";
}

	camelCase($str);
	camelCase($str1);
	camelCase($str2);

?>

挺简单的一道题,但是当时太紧张,还上网查了一下这几个额函数的具体用法

当着面试官写完的代码。最开始错误很多:

$token=strtok("-");

这句没写导致内存溢出;

for($i=1;$i<count($a);$i++)
第二个$i忘了加变量符号
$a[$i]=ucfirst($a[$i]);

忘了将返回值赋值给$a[$i];

然后被面试官怼惨了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值