habe z. B. ein char array mit Inhalt „frère“
Wenn ich dann mit cin.getline(…) einlesen und mir das
eingelesene ausgebe, dann passt das auch.
Der Buchstabe è im Array array wird jedoch in ein anderes
Symbol „umgewandelt“, sodass ich nicht vergleichen kann mit
strstr(…)
Du hast also anscheinend ein Problem mit Zeichensätzen bzw. Zeichencodierung – die Codierung der Zeichen im Quellcode passt nicht zur Codierung der Zeichen die du einliest oder ausgibst.
Computer können ja keine Buchstaben; sie können letztendlich nur Zahlen verarbeiten. Also weist man Buchstaben Zahlen zu… aber das geht auf verschiedene Arten und Weisen.
Die Buchstaben von A-Z und Ziffern von 0-9 haben in den meisten Nummerierungsmethoden dieselben Zahlen, aber bei Sonderzeichen hört’s dann schon auf… ein kleines „ä“ könnte zum Beispiel die Zahl 132 haben (etwa in der MS-DOS-Codepage 437), die Zahl 228 (etwa in ISO-8859-1 oder der Windows-Codepage 1252 für Westeuropa) oder durch die beiden Zahlen 195 und 164 wiedergegeben werden (UTF-8).
Wenn dein Quelltext in Windows-1252 geschrieben ist aber du UTF-8 einliest oder umgekehrt, passt das nicht zueinander, weil der Computer 195+164 einliest aber nach 228 sucht oder umgekehrt. Und so weiter.
Du musst also dafür sorgen, dass die Zeichen, die du einliest, und die, mit denen du vergleichst, dieselbe Zeichencodierung haben. Dafür musst du wissen, welche Codierung die eingelesenen Zeichen haben und welche die Zeichen im Quelltext, und wenn diese nicht zueinander passen, sie geeignet umwandeln.
Eventuell möchtest du auch nicht mit dem Datentyp char arbeiten sondern mit wchar_t (bzw. under C++ mit std::wstring statt mit std::string)… hierfür musst du aber auch dafür sorgen, dass die eingelesenen Bytes in die richtigen Zeichen umgewandelt werden.
Erfahrung mit solchen Umwandlungen habe ich mit C++ leider nicht, aber du hast nun ein paar Stichworte, mit denen du weitersuchen kannst.
Viel Erfolg!