libc: Add strcmp() and strncmp()
This commit is contained in:
parent
3e2a4276e9
commit
3fde7e46f5
@ -50,6 +50,12 @@ extern "C"
|
||||
/* Concatenates at most max bytes of the string src into dest. */
|
||||
char* strncat(char* dest, const char* src, size_t max);
|
||||
|
||||
/* Compares strings a and b. You might prefer to use the safer strncmp function. */
|
||||
int strcmp(const char* a, const char* b);
|
||||
|
||||
/* Compares at most max bytes of the strings a and b. */
|
||||
int strncmp(const char* a, const char* b, size_t max);
|
||||
|
||||
/* Returns the error string associated with the error number err. */
|
||||
char* strerror(int err);
|
||||
|
||||
|
@ -81,6 +81,27 @@ extern "C"
|
||||
return dest;
|
||||
}
|
||||
|
||||
int strcmp(const char* a, const char* b)
|
||||
{
|
||||
while (*a && (*a == *b))
|
||||
{
|
||||
a++;
|
||||
b++;
|
||||
}
|
||||
return *(const unsigned char*)a - *(const unsigned char*)b;
|
||||
}
|
||||
|
||||
int strncmp(const char* a, const char* b, size_t max)
|
||||
{
|
||||
const char* base = a;
|
||||
while (*a && (*a == *b) && (size_t)(a - base) < (max - 1))
|
||||
{
|
||||
a++;
|
||||
b++;
|
||||
}
|
||||
return *(const unsigned char*)a - *(const unsigned char*)b;
|
||||
}
|
||||
|
||||
char* strcat(char* dest, const char* src)
|
||||
{
|
||||
size_t dest_len = strlen(dest);
|
||||
|
Loading…
Reference in New Issue
Block a user