-
-
Neuer Benutzer
Öfters hier
naja.... ob er jetzt Strings nutzt oder nicht, ist ihm überlassen - wenn er weiß, dass es x Zeichen sind, kommt er auch ohne \0 aus...
statt vergleiche solange bis \0 in einem String erreicht kann man auch irgendwie sowas machen...
//a sei die Eingabe, b sei das fest gespeicherte, x sei die bekannte Länge von b
for (i = 0; i < x; i++) {if (a[i] != b[i]) || (a[i] == '\0') return false;}
if (a[x] != '\0') return false;
return true;
AAAAABäääääär für die Eingabe der Daten:
pass bei C-Code auf, man weiß nie, ob alle Compiler (Windows/Linux/..., offiziell/alternative/...) die Spezifikationen perfekt einhalten...
nicht dass ein Compiler meckert, weil es für ihn 6 Zeichen sind, einer das einfach richtig abarbeitet (\0 wegschmeißen) und ein anderer es verbockt es (hängt \0 an und verschiebt alles)
(letztens erst nen Compiler geschrieben, man glaubt nicht was eine Umstellung an der Spezifikation bewirken kann)
also lieber statt "Hallo", was zurechtgeschnitten werden müsste,
ein sauberes {'H',...,'o'}, das Char[] einfach als Byte[] interpretiert...
-
Erfahrener Benutzer
Roboter Genie
Naja, dann kann man das Programmieren auch gleich sein lassen, wenn man sich nicht auf die Sprachspezifikation stützen (kann). Der Standard sagt klar aus, dass nur der Speicher des Arrays beschrieben wird, alles andere ist ein Fehler im Compiler.
mfG
Markus
PS: http://www.dclc-faq.de/kap5.htm#5.20
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen