• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

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!
 

karolherbst

Danziger Kant
Registriert
11.05.07
Beiträge
3.878
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.