Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Frage zu char*

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
28.02.2005, 14:47 Uhr
~JamesT
Gast


Hallo,
also ich habe da einen char *:

char *c = "xxx"; ( der ist natürlich viel länger )

und möchte nun in dieser Zeichenkette nach Zeilenumbrüchen suchen und dann diesen
Teil ( bis zum Umbruch ) extrahieren.
Wie geht denn das und was ist den eigentlich ein char * ?

Danke, JamesT
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.02.2005, 14:53 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


char ist ein zeichen... char* ist ein zeiger auf ein char... er kann z.b. auf das erste zeichen einer zeichenkette zeigen (und wird dann meist string genannt)...

wenn du die zeichenkette nach zeilenumbrüchen durchgehen willst kannst du das z.b. so machen


C++:
char zu_suchendes_zeichen = '\r';
char *ein_char_zeiger;
char *c = "xxx";( der ist natürlich viel länger )
for(ein_char_zeiger=c;*ein_char_zeiger;++ein_char_zeiger)
   if(*ein_char_zeiger==zu_suchendes_zeichen)printf("Juchhu eins gefunden\n");




an sonsten sag mal genauer was du machen willst um dir nen vernünftigen tipp zu geben
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.02.2005, 15:05 Uhr
~JamesT
Gast


Danke !

Ich hab einen recht langen char * einige hundert Zeichen.
Diese sind durch Zeilenumbrüche voneinander getrennt.
Ich soll halt jetzt am Anfang starten und bis zu ersten Umbruch suchen.
Diesen Teil ( Anfang bis 1. Umbruch ) muss ich dann an eine Funktion übergeben.
Das ganze soll so lange gehen, bis der "String" zu ende ist bzw. kein Umbruch mehr gefunden wird.

Wäre toll, wenn du mir einen Tipp in Form eines kleinen Beispiels geben könntest.

JameT
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.02.2005, 15:46 Uhr
Th



Du solltest beachten, daß Zeilenumbrüche normalerweise unter Windows 2 Zeichen sind: "\r\n" , also ASCII Code 13 + 10.

Wenn du mit der VCL programmierst, kannst du auch eine TStringList verwenden.

C++:
TStringList *list = new TStringList;

list->Text = "dies\r\nist\r\nein\r\btext\r\n"; // <- hier den String bzw. die Variable eintragen

for(int i=0; i<list->Count; i++)
{
        func(list->Strings[i]);  // func ist die aufzurufende Funktion
}

delete list;


Dieser Post wurde am 28.02.2005 um 15:48 Uhr von Th editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
28.02.2005, 15:58 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


guck dir mal strtok bzw. wenn du aus ner datei einliest fgets an...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
28.02.2005, 16:34 Uhr
~JamesT
Gast


Danke, aber wie kann ich diese List so konvertieren, daß ich sie auch mit der MessageBox ausgeben kann ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
28.02.2005, 16:59 Uhr
Th



Den gesamten Text kannst du mit "pList->Text" ausgeben (inklusive Zeilenumbrüche).
Die einzelnen Zeilen, so wie oben auch, mit "pList->Strings[i]".
Falls eine Funktion einen "(const) char *" erwartet, dann einfach ".c_str()" verwenden.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
28.02.2005, 17:12 Uhr
~JamesT
Gast


Thanks a lot !
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


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: