• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

String "filtern"

Hammurapi

Macoun
Registriert
17.07.09
Beiträge
123
Hi,

für mein kommandozeilenbasiertes Programm muss ich ein character array manipulieren. Ich habe darin ca. 500 Zeichensequenzen die von einzigartigen Zeichen flankiert werden. Das ist einerseits ein % und andererseits ein |.

Kurz gefragt:
Kann ich alle Zeichen zwischen % und | in einen einzigen string überführen? Danke!
 
brauchst du gar nicht. Einfach ein weiteres Array anlegen und dort die Positionen von deinen % und | abspeichern. So hast du dann freien Zugriff auf deine Strings:

Code:
struct StringData
{
    int size;
    int position;
};

StringData* charArrayInformations;
char* dataSeperated;
/*
Daten füllen, etc...
...
*/

// muss selbst implementiert werden
fillArrayWithPositionsFromArray(charArrayInformations, dataSeperated, '%');

//Zugriff auf einzelne Strings:
char* firstString = &dataSeperated[arr[0].position];
char* secondString = &dataSeperated[arr[1].position];

du hast lediglich das Problem, dass du keine NULL-Bytes am Ende der Strings hast. Jedoch bekommst du so die nötigen Informationen die du brauchst um neue Speicherbereiche per memcpy mit den Strings zu füllen.