webForumDet fria alternativet

matcha ord i en tom array ;D

Perl & Ruby

2 svar · 443 visningar · startad av Tulork

Medlem sedan aug. 2004903 inlägg
Frågan#1

Har ett litet problem med ett script. Det ska funka som sådant att man skriver in namn ända tills man avslutar inputen. Namnen sparas sedan i en array och som i sin tur printas ut. Såhär långt klarar vi.

Vårt problem är att programmet ska matcha orden i som ligger sparade i arrayn och printa ut hur många av samma ord som finns. Typ shär

Detta skriver vi in:
Stoffe
Stoffe
Erik

Utmatningen ska då bli:
stoffe [2]
Erik [1]

Hur gör man detta? PRoblemet är ju att man kan inte matcha en tom array som det faktiskt är från början. Eller ska man skita i en array över huvudtaget och köra med key istället? hur funkar det?

Såhär långt har vi kommit:

#!C:/perl/bin/perl.exe

print "Skriv in lite namn\n";
@namnarray = ();					

do {
  $namn = <STDIN>;        			
  @namnarray = ($namn, @namnarray);		
  chomp @namnarray;
}

until $namn eq "\n";

print "@namnarray";
Medlem sedan juni 20004 308 inlägg
#2

En hash som man brukar kalla det kan jämföras med en array fast istället för att du har ett index (en integer) som definierar varje element så har du en nyckel (sträng). Exempel:

#!C:/perl/bin/perl.exe

print "Skriv in lite namn\n";
@namnarray = ();					

do {
	$namn = <STDIN>; chomp $namn;
	$namn{$namn}++ if $namn;
}

until $namn eq "";

foreach $key (keys %namn){
	print "$key [$namn{$key}]\n";
}

Lite läsning om hashes.

Medlem sedan aug. 2004903 inlägg
#3

Tack för att du finns :D

256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)