webForumDet fria alternativet

matcha ord i en tom array ;D

2 svar · 441 visningar · startad av Tulork

TulorkMedlem sedan aug. 2004952 inlägg
#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";
JojoxxMedlem sedan juni 20004 306 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.

TulorkMedlem sedan aug. 2004952 inlägg
#3

Tack för att du finns :D

124 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
121 ms — hämta tråd, inlägg och bilagor (db)