steckl: C++ - Problem *Hilfe*

Beitrag lesen

Hi,

Oh, ich hätte eher vermutet, dass man an den anspruchsvolleren Dingen scheitert, nicht an den Basics.

Hätte ich mir auch gedacht, aber vielleicht gibt es ja dafür einen GUI-Builder, mit dem man die GUI nur noch zusammenklicken muss.

* Die Länge eines Strings erhält man in C nur umständlich, aber wenn man
   Schritt für Schritt durchgeht, findet man das Ende leicht: Ein Nullbyte

Aber nur wenn man auf die Verwendung von Libs verzichtet.
In der C-Bibliothek string.h gibt es die Funktion strlen() die die Länge eines Strings zurück gibt.
Unter C++ kann man auch gleich die String-Klasse verwenden, die eine Methode length() hat.
Dass das so umständlich ist finde ich nicht, aber in diesem Fall kann man auch darauf verzichten.

Beispiel:

int ModifyString(char *string)
{ int i;

Wohl nur ein Flüchtigkeitsfehler, aber ein ganz böser!
Lokale Variablen müssen initialisiert werden, bevor sie das erste mal benutzt werden, sonst haben sie einen Zufallswert.
Falls es deswegen zu Fehlern kommt sucht man diese ewig.

while (string[i]!=0)        // ein Nullbyte markiert in C das String-Ende
    { string[i] = AnotherChar; // hier Ersatzwert eintragen
      i++;                     // Index erhöhen
    }                          // und weiter
   return (0);                 // ein Dummy-Rückgabewert der Form halber
}

int ModifyString(char *string)
{ while (*string)
      *string++ = AnotherChar;
   return (0);
}

Für mich ist diese kompakte, komprimierte Schreibweise klarer, aber da sind manche Leute anscheinend anderer Meinung. ;-)

Für Anfänger ist die Schreibweise mit dem Index (erste Version) wohl leichter zu verstehen, aber die zweite bringt Performance-Vorteile, da hier nicht jedesmal von &string[0] zu zählen begonnen werden muss, sondern direkt der Wert auf den der Pointer zeigt benutzt wird.

Aber ich glaube es ging minicrispie auch noch darum, wie der die Textfelder aus dem Formular ansprechen kann. Das weiß ich aber nicht, da ich mich nie mit der WinAPI befasst habe.
Aber auch wenn ich es wissen würde könnte ich wohl nur bedingt helfen, da dafür wohl auch noch der Quellcode, wie das Formular genau umgesetzt wurde, von Bedeutung ist.

mfG,
steckl