Array von Strings C(++)

PCIT

Freizeitschrauber(in)
Hallo, es geht darum eine kleine Datenstruktur zu schreiben, die Angestellte organisiert.
Ein Angestellter besucht verschiedene Kurse (String) und diese Kurse sollen als Feld verwaltet werden.
So das Problem nun ist aber, dass ich auschließlich Bibliotheksfunktionen für Ein und Ausgabe verwenden darf, also sowas wie strcpy nicht, und das kommt eben in gefühlt jeder Lösung vor, die ich gefunden habe. Das zweite Problem ist, das in der Aufgabenstellung steht, dass ein Nullzeiger ausdrücken soll, wenn eine Kurs nicht vorhaben, bzw. nicht besucht wurde. Also funktioniert ja sowas z.B. auch nicht.
char *bla[] = {"Kurs1", "Kurs2", "Kurs3", .....};

Wie also regel ich das mit dem Nullzeiger?
 
Hm ich denke eigentlich ist es egal, da wir beides verwenden können, aber Speicherverwaltung soll mit new/delete erfolgen, das ist ja C++.
 
Oh God, klingt mal wieder nach sonem Lehrer/Dozenten/sonstwas der absolut keine Ahnung von C++ (wahrscheinlich auch nicht von C) hat -.-
Du müsstest uns etwas mehr Infos geben, das reicht noch nicht um dir großartig zu helfen.

Code:
typedef struct {
  const char *kurs;
  // andere daten
} Angestellter;

Sowas sollte doch deinen Anforderungen genügen? Dann baust du dir noch tolle funktionen dafür.

Und warum soll dein Code da oben eigentlich nicht funktionieren? Bei mir funktioniert das wunderbar. Obwohl natürlich const char *bla[] = ...; besser wäre.
 
Also das genaue Problem verstehe ich bis hier hin auch noch nicht - ein paar konkretere Infos, was gefordert ist, wären super.

Aber grundsätzlich funktionieren Nullpointer auch mit C-Strings. Bei deinem Beispiel:
Code:
const char* bla[] = {"Kurs1", "Kurs2", nullptr, "Kurs4", .....};

Keine Ahnung, ob das jetzt ansatzweise dem entspricht, was du brauchst, aber...
 
Du könntest dir -besonders in C++ - eine String Klasse selbst schreiben und die strcpy Funktion selbst implementieren.
Zumimdest strcpy macht nicht viel.
 
Mir fallen grad noch 2-Dimensionale Arrays ein, wie char[Kurs][char-Kette für Name] .
 
Zurück