数组中的字符输入和按数组索引访问

时间:2013-05-17 05:00:27

标签: perl

要解决subsequence check 的问题,我试图在两个不同的数组中输入两个字符串并通过数组索引访问它们?

C 中我就像下面那样..

char text[25000],pattern[25000];
scanf("%s %s",text,pattern);

我可以通过数组索引访问每个字符。

我怎样才能在perl中做同样的事情?

在perl中,我没有找到任何特定于访问数组索引的内容。我得到的只是使用perl split函数..

my @pattern = split(" ",<>);

这会根据空间拆分输入并分配给数组索引,如果输入类似于canada nad,则会将canada分配给 $ pattern [0] 和{{ 1}}到 $ pattern [1]

但我希望它们分成两个独立的阵列?

我找到了另一个分裂的用户,如..

nad

这可以访问字符串的所有字符,但问题是我无法将它们分配到两个不同的数组中。

提前感谢任何想法/建议。

知道了,我正在找这样的东西..

my @pattern = split(undef,<>);
foreach my $val (@pattern){
     print $val."\n";
}

1 个答案:

答案 0 :(得分:1)

目前尚不清楚是否需要

# Two strings (which are scalars, not arrays)
my $text = "canada";
my $pattern = "nad";

# Two array of single-char strings
my @text_chars = ("c", "a", "n", "a", "d", "a");
my @pattern    = ("n", "a", "d");

如果你想要前者,

my ($text, $pattern) = split(' ', $line);

如果你想要后者,请跟进

my @text_chars    = split //, $text;
my @pattern_chars = split //, $pattern;

如果您不介意处理对数组的引用,也可以使用以下方法实现后者:

my ($text_chars, $pattern_chars) = map [ split // ], split ' ', $line;

在上文中,使用

生成$line
chomp( my $line = <> );