Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
String aufteilen

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
jensemann
Gast





BeitragVerfasst am: 07. Feb 2002 0:42   Titel: String aufteilen

Hi Leute
Ich bin ziemlicher c++ Anfänger, vorher hab ich unteranderem in Perl programmiert. In perl hatte ich die funktion split um strings nach nem bestimmten Muster aufzuteilen, wie kann ich sowasin c++ machen. In meinem c++ Buch konnte ich darüber nirgends was finden. Gibt es da irgendeine Funktion in der stl oder irgendeine externe lib. Oder ist das einfacher als ich glaube und ich brauche gar keine externe lib?

Mfg jensemann
 

mvo
Gast





BeitragVerfasst am: 07. Feb 2002 7:53   Titel: Re: String aufteilen

Hallo,
den split Befehl kenne ich nicht, weiss also nicht genau, was Du machen willst. Aber schau mal in "string.h" rein, dort ist eine Vielzahl von Stringfunktionen definiert.
 

jensemann
Gast





BeitragVerfasst am: 07. Feb 2002 16:16   Titel: Re: String aufteilen

Hi mvo
Die String funktionen kenne ich aus meinem Buch, da ist aber nichts passendes dabei, war zumindest nichts passendes im Buch beschrieben. Die split funktionen nimmt einen String entgegen, z.B. "Hallo Du" und splitet ihn dann nach nem vorgebenen Zeichen auf, und schreibt die teile in ein Array. Wenn ich bei obigem String das leerzeichen als trennung verwenden würde hätte ich ein Array, bei dem eintrag 0 Hallo ist, und eintrag 1 Du. Und sowas brauche ich jetzt am besten in c++, oder ich muss mir nen anderen Lösungsweg einfallen lassen, was ich nach mglichkeit vermeiden wollte.

Mfg jensemann
 

mvo
Gast





BeitragVerfasst am: 07. Feb 2002 16:46   Titel: Re: String aufteilen

strtok() kommt dem noch am naechsten, allerdings arbeitet die Funktion am Originalstring (dieser wird dabei "verbraucht"), und die Stringteile werden nicht automatisch in ein neues Array geschrieben. Das laesst sich aber einfach selber basteln. Dann gibt es da glaube ich noch die "GNU-Erweiterungen" mit komfortableren String-Funktionen, damit kenne ich mich aber nicht aus.


Quelle: C Programming Reference, Release 1.08

code:

Library: string.h

Prototype: char * strtok(char *s, const char *delim);

Syntax: char string []="abc def ghi";
char * word;

word=strtok(string, " ");
word=strtok(NULL, " ");

strtok requires a string and the word delimiters, for example:

word = strtok(string, " ");
A A
| |
| ------- Delimiters.
|
-------------- String to break up.

After the first call to strtok, word will point to abc on the second call, word will point to def

Example:

/*****************************************************************
*
* Purpose: Program to demonstrate the 'strtok' function.
* Author: M J Leslie
* Date: 23-Apr-94
*
****************************************************************/

#include <stdio.h>
#include <string.h>

main()
{
/* Copy the constant into the memory
* pinted to by 'test_string' */
char test_string[50]="string to split up";

/* if 'test_string' is declared as below and the program will give a
* 'Segmentation fault' This is because test_string' is pointing
* to a constant i.e. somethin that cant be changed.

char *test_string="string to split up"; */

char *sub_string;

/* Extract first string */
printf("%s
", strtok(test_string, " "));

/* Extract remaining
* strings */
while ( (sub_string=strtok(NULL, " ")) != NULL)
{
printf("%s
", sub_string);
}
}
/*****************************************************************
*
* Program O/P will look like this...
*
* string
* to
* split
* up
*
*****************************************************************/

 

jensemann
Gast





BeitragVerfasst am: 07. Feb 2002 19:31   Titel: Re: String aufteilen

Hi mvo
Danke, werde ich nachher mal ausprobieren.
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy