Calocybe: (C/C++) strings bearbeiten

Beitrag lesen

Hi Michael!

Jetzt hast Du aber an meinem Stolz gekratzt! ;-) Guck, so geht das in C:
Das wollt ich nicht.

War doch nicht so ernst gemeint! :-)

Muesste eigentlich so funktionieren, hab selber auch schon einige Zeit mit C gearbeitet, mag diese Sprache aber nicht so sehr, da man mit ihr viel zu viele Schweinereien machen kann.

Das ist ja das geile daran! Ich kann machen was ich will. Nicht so wie in Basic, wo sie es nicht mal geschafft haben, dem Programmierer Pointer zur Verfuegung zu stellen. Natuerlich darf man die Moeglichkeiten nicht zum Erbrechen ausreizen. Ich kann natuerlich einen Pointer durch Type casting in einen int quetschen, nur das macht weder besonders viel Sinn noch hat das irgendwas mit sauberem Programmieren zu tun. Man muss sich schon an ein paar sinnvolle Regeln halten, dann werden die Programme auch nicht dirty. C kennt auch das goto, aber benutzt wird es nur in Ausnahmefaellen.

Du wirst lachen, in Punkto Nutzung von Funktionen habe ich leider schon oft genug erleben muessen, das Bibliotheks-Dokumentationen (und diese Funktion habe ich fuer eine JS-Bibliothek geschrieben) nicht gelesen werden, dann Mist uebergeben wird und sich jeder wundert ueber die Ergebnisse, daher arbeite ich immer mit einem Return-Wert, der auch einen Fehlerindikator hat.

Tja, das gehoert auch zum sauberen Programmieren, dass man die Funktionen so verwendet, wie sie gedacht sind und demnach dafuer sorgt, dass die uebergebenen Argumente vernuenftig sind. Wer das nicht schafft, darf sich nicht ueber sinnlose Ergebnisse wundern. Sorry, aber imho sollen diese Leute entweder weiterlernen oder es ganz lassen.

Und natuerlich temporaer den Stack heftigst zumuellt und wehe Du hast dann X-Sessions laufen, in denen wiederum X-mal sowas rekursives ablaeuft, dann machts auf irgendeinem Rechner dann garantiert mal BUMM (--> Murphy's Law).

Das gehoert fuer mich auch zur Kunst des Programmierens, dass man sich um solche Probleme wie Ressourcenverschwendung Gedanken macht. In Zeiten von immer groesseren und billigeren RAM-Bausteinen kuemmert sich leider kaum noch jemand um solche Dinge. Die Folge ist, dass manche Sachen auf meiner alten Kiste eben nicht mehr laufen, bzw. sehr langsam (auch wegen fehlender Geschwindigkeitsoptimierung).

Da sprichst Du sicher von ANSI-C, MS-C hat, wenn ich mich recht entsinne, da sowas wie string eingefuehrt, ich hab's nur nie benutzt, da ich von produktgebundenen Sonderfunktionalitaeten jenseits des Standards sehr sehr wenig halte.

Zumindest haben die verschiedenen Hersteller haben einen Haufen eigene Funktionen in ihre Bibliotheken gepackt. Einen string-Datentyp kann ich mir fuer C nicht so recht vorstellen (habe nie mit MS-C rumgetan), aber in der Standard C++ Library gibt es glaube ich so eine Klasse (nicht Datentyp). In den MFC (Microsoft Foundation Classes, ziemlich schlechte class library fuer Windows) gibt es auch eine Klasse CString, die ist aber voll auf MFC ausgerichtet und fuer allgemeinere Zwecke voellig unbrauchbar. Vermutlich gibt es auch in anderen Klassenbibliotheken solche String-Klassen. Ich denke, die in Java und JS vorhandene ist ganz gut brauchbar.

Calocybe