PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : String auslesen



netmaster
11.09.04, 07:34
Hallo.

Ich bin mal wieder am proggen für die Arbeit.
Man macht sich ja das Leben so leicht wie es geht.
Hänge aber gerade an einem Problem.
Wie kann ich einen String auslesen?
Die Länge und jedes einzelne Zeichen?

string="hubeldubel"

Jetzt bräuchte ich die Länge des Strings, in dem Fall eben 10.
Wenn ich diese Zahl habe, will ich die einzelnen Zeichen aus dem String mit einer Schleife
einlesen,
sodass ich am Ende etwas in der Art von

z1="h"
z2="u"
z3="b"
z4="e"
z5="l"
.......

Kann mir da jemand vielleicht einen kleinen Denkanstoss geben?
Wenn natürlich schon eine Lösung vorliegt, dann nehme ich die auch. *löl*
Ich danke euch.

Dragoran
11.09.04, 08:20
wie wäre es wenn du angibst womit du programmierst?

netmaster
11.09.04, 21:42
Ups, sorry, voll verpeilt.
Meinte natürlich die gute Bash.

Der Gestreifte
11.09.04, 22:17
H.
Ich dachte, das geht auf die Schnelle mit "wc":

STRING="irgendwas" #kann natürlich als Argument übergeben werden
VAR=`echo "$STRING"| wc -c`
for ZAEHLER in `seq $VAR`; do
Z_VAR=z$ZAEHLER
echo $Z_VAR=\"`echo "$STRING" | cut -b $ZAEHLER`\"
doneAllerdings gibt wc noch ne Leerzeile mit aus, und der in man propagierte Schalter "-m" ist bei mir nicht implementiert. Ebenso wenig der Schalter "-c" in meinem grep.
Bleibt also noch die Lösung mit
VAR=$((`echo "$STRING"| wc -c` -1 ))
Allerdings weiss ich nicht, ob das evtl. Nachteile mit sich bringt.

Und mit perl geht das sicher auch eleganter.

Jasper
11.09.04, 22:38
Ups, sorry, voll verpeilt.
Meinte natürlich die gute Bash.

A="string"
L=${#A}

liefert die länge. die einzelnen zeichen lassen sich leicht mit cut oder awk herausschnitzen.


-j

netmaster
12.09.04, 08:10
A="string"
L=${#A}

liefert die länge. die einzelnen zeichen lassen sich leicht mit cut oder awk herausschnitzen.


-j

Genau das habe ich gesucht.

Big THX.