diff --git a/strops.c b/strops.c index c1ff2f6..81e7248 100644 --- a/strops.c +++ b/strops.c @@ -67,7 +67,7 @@ ull_t strops_first_pos_of_char(const char* string, char char_to_search) { } ull_t strops_first_pos_of_string(const char* string, const char* string_to_search) { - char contains_string; + bool_t contains_string; ull_t sts_length = strops_length(string_to_search); ull_t l = strops_length(string) - sts_length + 1; ull_t i, j; @@ -86,7 +86,7 @@ ull_t strops_first_pos_of_string(const char* string, const char* string_to_searc return i; } -char strops_contains_char(const char* string, char char_to_search) { +bool_t strops_contains_char(const char* string, char char_to_search) { ull_t i; for (i = 0; i < strops_length(string) + 1; i++) { if (string[i] == char_to_search) { @@ -96,8 +96,8 @@ char strops_contains_char(const char* string, char char_to_search) { return 0; } -char strops_contains_string(const char* string, const char* string_to_search) { - char contains_string = 0; +bool_t strops_contains_string(const char* string, const char* string_to_search) { + bool_t contains_string = 0; ull_t sts_length = strops_length(string_to_search); ull_t l = strops_length(string) - sts_length + 1; ull_t i, j; @@ -116,6 +116,34 @@ char strops_contains_string(const char* string, const char* string_to_search) { return contains_string; } +bool_t strops_equals(const char* string1, const char* string2) { + if (strops_length(string1) != strops_length(string2)) { + return 0; + } + bool_t equal = 1; + ull_t i; + for (i = 0; i < strops_length(string1); i++) { + if (string1[i] != string2[i]) { + equal = 0; + break; + } + } + return equal; +} + +bool_t strops_starts_with(const char* string1, const char* string2) { + assert(strops_length(string1) >= strops_length(string2) && "string2 cannot be longer than string1"); + bool_t starts_with = 1; + ull_t i; + for (i = 0; i < strops_length(string2); i++) { + if (string1[i] != string2[i]) { + starts_with = 0; + break; + } + } + return starts_with; +} + char* strops_to_lowercase(const char* string) { char* result = strops_copy(string); ull_t i; @@ -138,7 +166,7 @@ char* strops_to_uppercase(const char* string) { return result; } -int strops_is_lowercase(const char* string) { +bool_t strops_is_lowercase(const char* string) { ull_t i; for (i = 0; i < strops_length(string); i++) { if (!(string[i] >= 'a' && string[i] <= 'z')) { @@ -148,7 +176,7 @@ int strops_is_lowercase(const char* string) { return 1; } -int strops_is_uppercase(const char* string) { +bool_t strops_is_uppercase(const char* string) { ull_t i; for (i = 0; i < strops_length(string); i++) { if (!(string[i] >= 'A' && string[i] <= 'Z')) { diff --git a/strops.h b/strops.h index 61b070f..76c3c80 100644 --- a/strops.h +++ b/strops.h @@ -10,14 +10,24 @@ */ typedef unsigned long long ull_t; +typedef unsigned char bool_t; -char contains_char(const char* string, char char_to_search); -char contains_string(const char* string, const char* string_to_search); +char* strops_lenght(const char* string); +char* strops_copy(const char* string); +char* strops_copy_amount(const char* string, ull_t amount); + +ull_t strops_first_pos_of_char(const char* string, char char_to_search); +ull_t strops_first_pos_of_string(const char* string, const char* string_to_search); + +bool_t strops_contains_char(const char* string, char char_to_search); +bool_t strops_contains_string(const char* string, const char* string_to_search); +bool_t strops_equals(const char* string1, const char* string2); +bool_t strops_starts_with(const char* string1, const char* string2); char* strops_to_lowercase(const char* string); char* strops_to_uppercase(const char* string); -int strops_is_lowercase(const char* string); -int strops_is_uppercase(const char* string); +bool_t strops_is_lowercase(const char* string); +bool_t strops_is_uppercase(const char* string); char* strops_insert_at_pos_string(const char* string, const char* string_to_insert, ull_t pos); char* strops_remove_at_pos_char(const char* string, ull_t pos); diff --git a/tests.c b/tests.c index 423790f..678b2c7 100644 --- a/tests.c +++ b/tests.c @@ -79,7 +79,7 @@ int test_contains_string() { char result; input = "I suck at C"; expected = 1; - result = strops_contains_string(input, "C"); + result = strops_contains_string(input, "suck"); if (result != expected) { printf("test_ failed\n"); printf("Got = %d\nExpected = %d\n", result, expected);