Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » string teilen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
22.11.2004, 11:22 Uhr
~susi
Gast


Hallo Leute!

ich hab da mal ein problem!

ich habe eine zeile
Bsp. aaaaa#bbbbbbb
in einen string eingelesen!
diesen strin möchte ich jetzt teilen!
und zwar alles was vor dem # steht möchte ich in array[x][0] speichern und alles was hinterm # steht möchte ich in array [x][1] speichern!
also die position des # habe ich schon geschafft heraus zufinden! aber wie mache ich den rest, also den string teilen und den teil speichern?

Danke

Susi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.11.2004, 11:30 Uhr
~CC
Gast


wenn du den Originalstring nicht mehr brauchst, kannst du einfach zwei Pointer nehmen:

char *s1,*s2;

s2 = strchr(str,"#");
*s2 = 0;
s1 = str;
s2++;
puts (s1); puts(s2);
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.11.2004, 11:44 Uhr
~susi
Gast


könntest du mir bitte auch noch erklären was du da machst?

also als erstes definierst du zwei zeiger,
dann weißt du s2 irgendwas zu, also sorry hier hört für mich mein verständnis leider schon auf von dem was du da machst?

wäre super nett!
meinst du puts ist auch der richtige befehl um die teil strings im array zu speichern?

Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.11.2004, 12:28 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

stchr sucht in str nach "#", und gibt einen Zeiger auf die erste Fundstelle zurück. Danach wird diese Stelle mit *s2=0; auf 0 gesetzt, was in dem Stringende entspricht. Damit ist str (nach der nächsten Zeile auch s1) an der Stelle zuende, an der der Lattenzaun stand. Mit s2++; wird s2 ein Zeichen weiter verschoben und zeigt jetzt auf den Teil, der nach dem Lattenzaun im String stand, und kann ausgegeben werden. Das schönste an C ist die Pointerarithmetik
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
22.11.2004, 12:31 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ums mal so zu verdeutlichen:

str = aaaaa#bbbbbbb'\0'

C++:
s2 = strchr(str,"#");
*s2 = '\0';


str = aaaaa'\0'bbbbbbb'\0'


C++:
s1 = str;


s1 = aaaaa'\0'


C++:
s2++;


s2 = bbbbbbb'\0'

das '\0' ist die nullterminierung des strings.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
22.11.2004, 13:41 Uhr
~susi
Gast


Danke!

es wäre aber noch nett wenn ihr mir noch erklären könntet wie ich die teile in das array rein bekomme!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
22.11.2004, 14:46 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja wie genau soll dein array aussehen?

meinst du sowas wie


Pseudecode:

array[0] = "wort1"
array[1] = "wort2"


oder meinst du


Pseudecode:

array[0][0] = "spalte1 - wort1"
array[0][1] = "spalte1 - wort2"
array[1][0] = "spalte2 - wort1"
array[1][1] = "spalte2 - wort2"


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: