Zeichenkettn-Vergleich sckägt fehl, warum?
-
hatte ich zwar vorher schonmal ausprobiert und hab jetzt die Funktion nochmal nachgeschlagen und festgestellt, dass Sie 0 bei gleichen strings zurückgibt.
-
Du solltest die beiden chars nicht mit == überprüfen.
Mit strspn ist es besser, da dort nach einem Substring gesucht wird.Dein string kann ja auch andere zeichen enthalten außer den gewollten und dann kommt es mit == zu keiner übereinstimmung.
-
Es kommt so oder so zu keiner Uebereinstimmung, ausser, zwei Zeiger zeigen auf
die selbe Adresse.mfg
v R
-
Mit
strspn( element_name , "DebugWindowOnStartup");
sollte es gehn.
Da ist nix mit 2 Zeigern auf die selbe Adresse.
-
Darauf hast du dich aber beim ersten Posting nicht bezogen.
mfg
v R
-
Das == bezog sich auf den Vergleich von 2 char strings nicht auf den Vergleich von 2 Pointern.
-
daishi schrieb:
Das == bezog sich auf den Vergleich von 2 char strings nicht auf den Vergleich von 2 Pointern.
"Char Strings" (Was für ein Wort) wurden hier aber doch offensichtlich mit zwei Zeigern realisiert. Von daher ist ein einfaches strcmp angebracht, er will ja schließlich auf Gleichheit testen und nicht ob das irgendein Substring vorhanden ist.
-
Wenn man zwei "char strings" mittels == vergleicht, verleicht man Adressen und
nicht die Inhalte. Es handelt sich hier schliesslich nicht um die string-Klasse.mfg
v R
-
Wieso nehmt ihr strcmp?
Mit strspn spart man sich arbeit.
-
Was für Arbeit spart man sich denn da? Bedenke bitte, dass strspn("Hello world", "Hello world") das gleiche Ergebnis liefert wie strspn("Hello world", "wol Herd");
-
Bashar schrieb:
Was für Arbeit spart man sich denn da? Bedenke bitte, dass strspn("Hello world", "Hello world") das gleiche Ergebnis liefert wie strspn("Hello world", "wol Herd");
Ich hatte es so verstanden, daß strspn mir den ersten Index des strings zurück gibt, wo es passt.
-
man strspn Auszug schrieb:
size_t strspn(const char *s, const char *accept);
The strspn() function calculates the length of the initial
segment of s which consists entirely of characters in
accept.
-
Danke, dadurch habe ich auch nen Fehler in einem Programm gefunden.
Ich habe in in der Funktionsübersicht nur das gefunden:strspn | Find the first substring. | size_t strspn( const char *string, const char *strCharSet );
Toll, muß ich mir also selber so ne Funktion basteln um nen Teilstring zu finden.
-
den Teilstring findet man mit strstr
-
Danke,
habe gerade meine alte Funktionsübersicht entsorgt.