| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #ifndef CCAN_STRING_H
- #define CCAN_STRING_H
- #include <string.h>
- #include <stdbool.h>
- /**
- * streq - Are two strings equal?
- * @a: first string
- * @b: first string
- *
- * This macro is arguably more readable than "!strcmp(a, b)".
- *
- * Example:
- * if (streq(str, ""))
- * printf("String is empty!\n");
- */
- #define streq(a,b) (strcmp((a),(b)) == 0)
- /**
- * strstarts - Does this string start with this prefix?
- * @str: string to test
- * @prefix: prefix to look for at start of str
- *
- * Example:
- * if (strstarts(str, "foo"))
- * printf("String %s begins with 'foo'!\n", str);
- */
- #define strstarts(str,prefix) (strncmp((str),(prefix),strlen(prefix)) == 0)
- /**
- * strends - Does this string end with this postfix?
- * @str: string to test
- * @postfix: postfix to look for at end of str
- *
- * Example:
- * if (strends(str, "foo"))
- * printf("String %s end with 'foo'!\n", str);
- */
- static inline bool strends(const char *str, const char *postfix)
- {
- if (strlen(str) < strlen(postfix))
- return false;
- return streq(str + strlen(str) - strlen(postfix), postfix);
- }
- #endif /* CCAN_STRING_H */
|