我想创建一个替换字符并保留特殊字符的程序。示例输入和输出如下所示。
这是我到目前为止所做的:
#include <features.h>
#undef __USE_SVID
#include <random>
#include <iostream>
int main(){
std::cout << DOMAIN << std::endl;
return 0;
}
输入:
嗨!你好吗?
输出:
JK! krz duh brx itnsl?
答案 0 :(得分:2)
您的代码中的一些内容没有意义:
use strict; use warnings;
。my
来创建变量)@foo.length
不是数组@foo
中的元素数。它是数组@foo
中与$_
中的字符数串联的元素数(因为标量上下文中的数组返回它们的长度,.
连接字符串,length
起作用默认情况下在$_
上。join ($char)
始终返回空字符串:您使用$char
作为分隔符加入空列表(无元素)。这是尝试解决所有这些问题:
use strict;
use warnings;
my $sentence = readline;
$sentence =~ s{([A-Za-z]+)}{
my $word = $1;
join '', map {
my $base = ord(/^[A-Z]/ ? 'A' : 'a');
chr((ord($_) - $base + length($word)) % 26 + $base)
} split //, $word
}eg;
print $sentence;
答案 1 :(得分:1)
我认为你在做什么是rot3编码,但如果是这样那么你的例子就错了
select distinct p.part_id,p.part_number,p.description,c.main_part_id
from part p
left join (
select main_part_id,connect_by_root(main_part_id) real_part_id
from alternate_part
connect by NOCYCLE prior main_part_id = alternate_part_id
) c
on p.part_id = c.real_part_id and p.part_id != c.main_part_id
order by p.part_id
my $sentence = 'Hi! how are you doing?';
$sentence =~ tr/A-Za-z/D-ZA-Cd-za-c/;
print $sentence, "\n";
与
相似但不完全相同Kl! krz duh brx grlqj?