免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1898 | 回复: 6
打印 上一主题 下一主题

单个单个的比较? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-03 15:44 |只看该作者 |倒序浏览
大家好:
比如我有一个文件ABCDEF,
另一个文件有BBDEEF,长度都是一样的。我想让第一个文件的第一个字母与第二个文件的第一个字母比较看是否相等,相等的$common++;  然后让第一个文件的第二个字母与第二个文件的第二个字母比较看是否相等,不相等的话就不管它了,往后的都以此类推。

我老往循环上考虑,但我觉得不能用循环语句。  能给个思路吗?谢谢

论坛徽章:
0
2 [报告]
发表于 2010-06-03 15:58 |只看该作者
肯定得用循环吧~

论坛徽章:
0
3 [报告]
发表于 2010-06-03 16:04 |只看该作者
能给个思路吗?

论坛徽章:
0
4 [报告]
发表于 2010-06-03 16:25 |只看该作者
本帖最后由 x9x9 于 2010-06-03 16:27 编辑

看下可以吗,我没试结果;

my $str1='ABCDEF';
my $str2='BBDEEF';

my @arr1=split //,$str1;
my @arr2=split //,$str2;

my $num=$#arr1;
my $common=0;

for (my $i=0;$i<=$mum;$i++){
$common++ if ($arr1[$i]  eq $arr2[$i] );
}

论坛徽章:
0
5 [报告]
发表于 2010-06-03 16:32 |只看该作者
本帖最后由 leigh111 于 2010-06-03 16:42 编辑

自己想了个思路,经过测试OK。
foreach (@file1) {
   if ($_ eq shift(@file2)) {  ########就是利用shift 的返回值
     $common++;

   }
     print "$common\n";
}

论坛徽章:
0
6 [报告]
发表于 2010-06-03 16:41 |只看该作者
回复 4# x9x9


    您写的和我开始考虑的思路差不多。但我没有写出来。看了你代码,很简洁,在这里学习了。谢谢

论坛徽章:
0
7 [报告]
发表于 2010-06-03 16:43 |只看该作者
自己想了个思路,经过测试OK。
foreach (@file1) {
   if ($_ ne shift(@file2)) {  ########就是利用shi ...
leigh111 发表于 2010-06-03 16:32



也不错, foreach也是循环吧{:3_190:}

测试ok?你到底是相等的时候加一还是不相等时加啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP