So I have a dilemma. I need to compare two C-style strings and I searched for the functions that would be the most appropiate:
memcmp //Compare two blocks of memory (function)
strcmp //Compare two strings (function )
strcoll //Compare two strings using locale (function)
strncmp //Compare characters of two strings (function)
strxfrm //Transform string using locale (function)
The first one I think is for addresses, so the idea is out.
The second one sounds like the best choice to me, but I wanna hear feedback anyway.
The other three leave me clueless.
For general string comparisons,
strcmpis the appropriate function. You should usestrncmpto only compare some number of characters from a string (for example, a prefix), andmemcmpto compare blocks of memory.That said, since you’re using C++, you should avoid this altogether and use the
std::stringclass, which is much easier to use and generally safer than C-style strings. You can compare twostd::strings for equality easily by just using the==operator.Hope this helps!