Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::strncmp(3)		      C++ Standard Libary	       std::strncmp(3)

NAME
       std::strncmp - std::strncmp

Synopsis
	  Defined in header <cstring>
	  int strncmp( const char *lhs,	const char *rhs, std::size_t count );

	  Compares  at	most  count characters of two possibly null-terminated
       arrays. The
	  comparison is	done lexicographically.	Characters following the  null
       character are
	  not compared.

	  The  sign  of	 the  result is	the sign of the	difference between the
       values of the first
	  pair of characters (both interpreted as unsigned char)  that	differ
       in the arrays
	  being	compared.

	  The  behavior	is undefined when access occurs	past the end of	either
       array lhs or
	  rhs. The behavior is undefined when either lhs or rhs	 is  the  null
       pointer.

Parameters
	  lhs,	rhs  - pointers	to the possibly	null-terminated	arrays to com-
       pare
	  count	   - maximum number of characters to compare

Return value
	  Negative value if lhs	appears	before rhs in lexicographical order.

	  Zero if lhs and rhs compare equal, or	if count is zero.

	  Positive value if lhs	appears	after rhs in lexicographical order.

Notes
	  This function	 is  not  locale-sensitive,  unlike  std::strcoll  and
       std::strxfrm.

Example
       // Run this code

	#include <cstring>
	#include <iostream>

	void demo(const	char* lhs, const char* rhs, int	sz)
	{
	    int	rc = std::strncmp(lhs, rhs, sz);
	    if(rc == 0)
		std::cout << "First " << sz << " chars of ["
			  << lhs << "] equal ["	<< rhs << "]\n";
	    else if(rc < 0)
		std::cout << "First " << sz << " chars of ["
			  << lhs << "] precede [" << rhs << "]\n";
	    else if(rc > 0)
		std::cout << "First " << sz << " chars of ["
			  << lhs << "] follow [" << rhs	<< "]\n";
	}
	int main()
	{
	    demo("Hello, world!", "Hello, everybody!", 13);
	    demo("Hello, everybody!", "Hello, world!", 13);
	    demo("Hello, everybody!", "Hello, world!", 7);
	    demo("Hello, everybody!" + 12, "Hello, somebody!" +	11, 5);
	}

Output:
	First 13 chars of [Hello, world!] follow [Hello, everybody!]
	First 13 chars of [Hello, everybody!] precede [Hello, world!]
	First 7	chars of [Hello, everybody!] equal [Hello, world!]
	First 5	chars of [body!] equal [body!]

See also
	  strcmp  compares two strings
		  (function)
	  wcsncmp  compares  a	certain	 amount	 of  characters	 from two wide
       strings
		  (function)
	  memcmp  compares two buffers
		  (function)
	  strcoll compares two strings in accordance to	the current locale
		  (function)

http://cppreference.com		  2022.07.31		       std::strncmp(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::strncmp&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help