From d006cbf9d6472db02a484ce6ed538995ce74b9e3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Vin=C3=ADcius=20R=2E=20Miguel?= Date: Sat, 6 Jun 2020 02:45:41 -0300 Subject: [PATCH] Change string_contains --- src/libstring.c | 12 +++--------- src/libstring.h | 4 ++-- test/main.c | 7 +++---- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/libstring.c b/src/libstring.c index 176322e..1898699 100644 --- a/src/libstring.c +++ b/src/libstring.c @@ -303,7 +303,7 @@ size_t string_replace(cstr_t * str, const char * new_val) //! \param str2 //! \return //! -bool string_contains(cstr_t * str1, cstr_t * str2) +bool string_contains(cstr_t * str1, const char * str2) { if (!str1) { @@ -311,19 +311,13 @@ bool string_contains(cstr_t * str1, cstr_t * str2) return false; } - if (!str2) - { - fprintf(stderr, "In string_contains: `str2` unitialized.\n"); - return false; - } - - if (str1->size < str2->size) + if (str1->size < __strlen(str2)) { //! str2 is bigger than str1, so it can't be a substring. return false; } - if(__strstr(str1->value, str2->value)) + if(__strstr(str1->value, (char *) str2)) { return true; // If __strstr returned a non-NULL pointer, str2 is a substring of str1. } diff --git a/src/libstring.h b/src/libstring.h index 531d125..ca6187b 100644 --- a/src/libstring.h +++ b/src/libstring.h @@ -71,8 +71,8 @@ int string_to_int(cstr_t * str); // undef cstr_t * string_to_lower_case(cstr_t * origin); // def, tested cstr_t * string_to_upper_case(cstr_t * origin); // def, tested -bool string_contains(cstr_t * str, cstr_t * substr); // def, untested -size_t string_replace(cstr_t * str, const char * new_val); // def, untested +bool string_contains(cstr_t * str1, const char * str2); // def, tested +size_t string_replace(cstr_t * str, const char * new_val); // def, tested /* Implement if possible (not a priority atm) */ //cstr_t string_tokenize(cstr_t * str, char delim); // Que inferno vai ser isso aqui. diff --git a/test/main.c b/test/main.c index 67de8d3..68b51b6 100644 --- a/test/main.c +++ b/test/main.c @@ -2,7 +2,7 @@ #include int main(void) -{ +{ cstr_t * str1 = string_init("THE CARMESIM PROJECT."); cstr_t * str2 = string_init("The Carmesim Project."); @@ -49,10 +49,9 @@ int main(void) //! Testing string_contains(cstr_t *, cstr_t *) and string_replace(cstr_t *, const char *); printf("\nTesting string_contains(cstr_t *, cstr_t *) and string_replace(cstr_t *, const char *);\n"); string_replace(str1, "carmesim"); - string_replace(str2, "armes"); - if (string_contains(str1, str2)) + if (string_contains(str1, "armes")) { - printf("%s is in %s\n", str2->value, str1->value); + printf("%s is in %s\n", "armes", str1->value); } //! string_free_all(); -- 2.11.4.GIT