PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : strncmp und strnicmp - Wo ist der Unterschied



darxun
08-04-2008, 16:08
Wo liegt der unterschied zwischen strncmp und strnicmp?

ContainerDriver
08-04-2008, 16:17
Schon mal eine Suchmaschine mit den beiden Funktionsnamen gefüttert? ;)

darxun
08-04-2008, 18:12
Ja, und die Frage stellt sich mir immernoch. :mad:

ContainerDriver
08-04-2008, 18:54
strnicmp ist wohl die case-insensitive Version von strncmp.

Gruß, Florian

locus vivendi
08-04-2008, 19:09
Wo liegt der unterschied zwischen strncmp und strnicmp?
Während ich auch der Meinung das man solche Fragen im Prinzip durch Befragen einer Referenz oder Suchmaschine beantworten sollte, muss ich anerkennen das die Situation etwas verwirrend ist. Diese Funktionen sind aus C und C++ bekannt, aber auch andere Sprachen kennen sie anscheinend. Das erschwert die Suche. Außerdem sind die Organisationen welche die beiden Funktionen spezifizieren nicht identisch. Das erschwert die Suche ebenfalls.

Ich nehme an, dass es um C++ geht, was sich an dieser Stelle mit C deckt. Hier kannst du die Definition für strncmp direkt dem C Standard entnehmen, oder der Beschreibung im Posix Standard (findest du z.B. hier:http://www.opengroup.org/onlinepubs/009695399/). Auch eine akurate Referenz wie die von Dinkumware etwa klärt dich auf.

Die Funktion strnicmp entspricht meines Wissens hingegen keinem Standard. Dennoch ist sie sehr Verbreitet weil z.B. Microsofts Compiler sie unterstützt. Konsequenterweise kannst du deren Funktione in der MSDN Referenz nachlesen, zusammen mit dem Hinweis, dass deren Verwendung nicht gebilligt wird (eben weil die Funktione nicht einem Standard entspricht).

Es gibt für strnicmp übrigens eine Standardkonforme Alternative namens "strncasecmp" (entspricht Posix). Wenn man die beiden Namen "strncmp" und "strncasecmp" vergleicht, springt einem der Unterschied quasi schon ins Auge...

darxun
09-04-2008, 07:54
vielen dank^^das hat geholfen :D