Hallo,
JS-Beispiel:
var array = new array();
array["a"] = "001";
array["b"] = "002";
array["c"] = "003";wie kann ich sowas in c realisieren?
das hängt davon ab :-)
a) Definiere Deine Aufgabenstellung genau.
Was willst Du erreichen?
Hier hast Du etwas ganz anderes als in Deinem Ausgangsposting. Hier ersetzt Du jedes Zeichen der Eingabe durch drei Zeichen in der Ausgabe. Der Ausgabestring ist folglich dreimal so lang wie die Eingabe. Willst Du das wirklich?
Nächster Punkt:
Dein Programm besteht aus drei verschiedenen Teilen:
a) Eingabe
b) Verarbeitung
c) Ausgabe
Es ist eine verflixt gute Idee, bereits bei solch' simplen Programmen, diese Aufgaben mit Funktionen zu erledigen. Es erleichtert Dir ganz gewaltig das Testen und hilft Dir Fehler zu vermeiden:
a) Eingabe
/*
Aufgabe:
Liefert die Eingabe des Benutzers als eine nullterminierte Zeichenkette
zurück.
Seiteneffekt:
Allokiert den notwendigen Speicher
*/
char* eingabe()
// Alternativ: übergebe den Eingabepuffer
// void eingabe(char* puffer)
b) Verarbeitung
/*
Aufgabe:
Codiert eine Eingabezeichenkette gemäß Vorschrift.
Seiteneffekt:
Allokiert den notwendigen Speicher
*/
char* codiere(char* eingabe)
// Alternative: übergebe Ein- und Ausgabepuffer (call by Reference)
// void codiere(char* klartext, char* chiffre)
c) Ausgabe
/*
Aufgabe:
gibt die übergebene Zeichenkette aus
*/
void ausgabe(char* zeichenkette)
d) Aufräumen
/*
Aufgabe:
gebe den dynamisch angeforderten Speicher wieder frei.
*/
// Anmerkung: entfällt bei Ein- und Ausgabepuffern, die per Referenz
// übergeben werden (wäre also einfacher)
Grundsätzlich musst Du bei Zeichenketten in C gut aufpassen, um Buffer Overflows zu vermeiden.
Kurz und gut: Warum um alles in der Welt willst Du Dir C antun? Warum Stringverarbeitung in C (die letzte Sprache, in der ich dies tun möchte).
Freundliche Grüße
Vinzenz