RAD Studio |  |

strncmp, _mbsncmp, wcsncmp

Header File

string.h, mbstring.h

Category

Memory and String Manipulation Routines, Inline Routines

Prototype

int strncmp(const char *s1, const char *s2, size_t maxlen);

int wcsncmp(const wchar_t *s1, const wchar_t *s2, size_t maxlen);

int _mbsncmp(const unsigned char *s1, const unsigned char *s2, size_t maxlen);

#define _mbccmp(__s1, __s2) _mbsncmp((__s1),(__s2),1)

Description

Compares a portion of one string to a portion of another.

strncmp makes the same unsigned comparison as strcmp, but looks at no more than maxlen characters. It starts with the first character in each string and continues with subsequent characters until the corresponding characters differ or until it has examined maxlen characters.

Return Value

- strncmp returns an int value based on the result of comparing s1 (or part of it) to s2 (or part of it):
- < 0 if s1 is less than s2
- == 0 if s1 is the same as s2
- > 0 if s1 is greater than s2

Example
Copy Code

    #include <string.h>
    #include <stdio.h>
    int  main(void)
    {
       char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc";
       int ptr;
       ptr = strncmp(buf2,buf1,3);
       if (ptr > 0)
          printf("buffer 2 is greater than buffer 1\n");
       else
          printf("buffer 2 is less than buffer 1\n");
       ptr = strncmp(buf2,buf3,3);
       if (ptr > 0)
          printf("buffer 2 is greater than buffer 3\n");
       else
          printf("buffer 2 is less than buffer 3\n");
       return(0);
    }

Portability

| POSIX | Win32 | ANSI C | ANSI C++
strncmp | + | + | + | +
_mbsncmp |  | + |  |
_mbccmp |  | + |  |
wcsncmp |  | + | + | +

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!