Hallo, ich möchte einen String $string in einzelne Buchstaben und zahlen aufsplitten.
$string enthält z.B. abcde013
Jetzt möchte ich das alles in ein Array bekommen, damit ich auf das a mit @array[0] zugreifen kann.
Wie mache ich sowas, hat jemand eine Idee?
Danke schon mal.
micha
User since
2004-02-19
1750
Artikel
BenutzerIn
my @array = split "", "abcde0123";
\n\n
<!--EDIT|Taulmarill|1085660994-->
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
User since
2004-05-27
2
Artikel
BenutzerIn
@array = split(//, $string);
-Markus
User since
2003-08-04
5873
Artikel
ModeratorIn
Das fand ich am Anfang seh gewöhnungsbedürftig, schließlich konnte man in C direkt auf die einzelnen Zeichen eines Strings per Index zugreifen
const char * const text = "Testtext";
char ersteszeichen = text[0];
Aber dafür hat Perl soooo viele andere Vorteile ;)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite
User since
2004-05-27
2
Artikel
BenutzerIn
Hi,
Ja schon, aber in C ist das Zeichen die elementare Einheit, während es bei Perl der "String" ist. Man hat halt nicht von Anfang ein ein Array vom Typ char, sondern eben nur datt janze, halt "String". Und deshalb muss man "String" erst in ein Array von Zeichen überführen. Der Vorteil bei der Perl-Variante ist zumindest, dass man beim Splitten mit einer RegEx arbeitet, die auch komplexe Fälle einer Auftrennung von Zeichenketten ermöglicht. So etwas ist mit C wesentlich schwieriger zu lösen .:rock:
User since
2003-08-15
76
Artikel
BenutzerIn
Frage: wofür brauchst du $array[0]?
Im Normalfall ist man doch mit RegEx viel besser dran...
User since
2003-08-04
14371
Artikel
ModeratorIn
oder wenn man nur vereinzelt Buchstaben braucht, kann man auch substr verwenden...