C ++ und C (entfernen Sie std::
für C):
Aber der wahre C ++ Weg:
%Vor% Die Verwendung von ==
funktioniert nicht, weil es versucht, die Adressen des ersten Zeichens jedes Arrays zu vergleichen (offensichtlich sind sie nicht gleich). Es wird nicht den Inhalt beider Arrays vergleichen.
In einem Ausdruck, der ==
verwendet, werden die Namen von char
-Arrays in char*
zerlegt, die auf den Anfang ihrer jeweiligen Arrays zeigen. Der Vergleich wird dann in Bezug auf die Werte der Zeiger selbst und nicht die tatsächlichen Inhalte der Arrays durchgeführt.
==
gibt nur true für zwei Zeiger zurück, die auf dieselbe Position verweisen, andernfalls auf false, selbst wenn sie auf zwei Arrays mit identischem Inhalt zeigen.
Was Sie brauchen, ist die Standardbibliotheksfunktion strcmp
. Dieser Ausdruck wird als wahr ausgewertet, wenn die Arrays den gleichen Inhalt enthalten (bis zum abschließenden Nullzeichen, das in beiden Arrays vorhanden sein muss, damit strcmp
sicher funktioniert).
Überprüfen Sie sie in einer for-Schleife. Erhalte die ASCII-Nummern für jedes Zeichen, wenn sie sich nicht mehr gleich sind.