====== strncmp() ====== strncmp ist definiert in der ''[[start|string]]'', die in C über ''string.h'', bzw. in C++ über ''cstring'' eingebunden wird. ===== Funktion ===== strncmp() vergleicht zwei Strings bis maximal zum angegebenen Zeichen oder in einem der beiden Strings ein [[glossary:Nullbyte]] gefunden wurde. ===== Signatur ===== #include void * strncmp( char const * first, char const * second, size_t size ); **first**: erster String \\ **source**: zweiter String \\ **size**: Anzahl maximal zu vergleichender Zeichen (Der Typ ''size_t'' entspricht i.d.R. [[c:type:unsigned]] [[c:type:int]])) **Return value**: ^ Rückgabewert ^ Bedeutung ^ | 0 | Die verglichenen Strings sind bis zum angegebenen Zeichen identisch | | positiv | Die verglichenen Strings sind nicht identisch, das erste unterschiedliche Zeichen war bei ''first'' größer als bei ''second'' | | negativ | Die verglichenen Strings sind nicht identisch, der erste unterschiedliche Zeichen war bei ''first'' kleiner als bei ''second'' | ===== Fehlerquellen ===== Wurde bei einem Strings das Nullbyte vergessen und ist ''size'' größer als der jeweilige String ohne Nullbyte, so findet ein lesender Zugriff auf Speicherbereiche statt, die nicht dem Programm zugeordnet sind. Dies endet daher häufig in einem Programmabsturz. ===== Beispiel ===== #include // definiert strncmp #include // definiert printf #include // definiert EXIT_SUCCESS char const * string = "Hello World"; char const * identical = "Hello proggen.org"; char const * greater = "Salut"; char const * less = "Hallo"; int main( void ) { int const length = 5; printf( "%s - %s: %d\n", identical, string, strncmp( identical, string, length ) ); printf( "%s - %s: %d\n", greater, string, strncmp( greater, string, length ) ); printf( "%s - %s: %d\n", less, string, strncmp( less, string, length ) ); return EXIT_SUCCESS; } **Ausgabe:** Hello proggen.org - Hello World: 0 Salut - Hello World: 11 Hallo - Hello World: -4 ===== siehe auch ===== [[c:lib:string:start|string]]: [[c:lib:string:strcmp|strcmp()]], [[c:lib:string:memcmp|memcmp()]]