From c3b78148d62c4818380d53ea46d02fdc47f7667a Mon Sep 17 00:00:00 2001 From: Steven Schronk Date: Wed, 23 Dec 2009 13:35:36 -0600 Subject: [PATCH] Added function to example 5-5 named strncmp. Compares contents of string s1 with contents of s2. --- ex_5-5.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/ex_5-5.c b/ex_5-5.c index 7c84cef..69fff20 100644 --- a/ex_5-5.c +++ b/ex_5-5.c @@ -46,6 +46,29 @@ char *ss_strncat(char *dest, const char *source, size_t n) return dest; } +/* + +Compares contents of string s1 with contents of s2. + +If s1 < s2 returns < 0 +If s1 == s2 returns 0 +If s1 > s2 returns > 0 + +*/ +int ss_strncmp(const char *s1, const char *s2, size_t n) +{ + + while(--n >= 0 && *s1 != '\0' && *s2 != '\0') + { + + if(*s1++ == *s2++) { continue; } + if(*s1 > *s2) + return 1; + else + return -1; + } + return 0; +} int main() { @@ -82,5 +105,20 @@ int main() print_array(buffer); } + printf("\n"); + + char smaller[] = { "12345" }; + char bigger[] = { "67890" }; + int size_ans; + + size_ans = ss_strncmp(smaller, bigger, 3); + printf("%d\n", size_ans); + + size_ans = ss_strncmp(bigger, bigger, 3); + printf("%d\n", size_ans); + + size_ans = ss_strncmp(bigger, smaller, 3); + printf("%d\n", size_ans); + return 1; } -- 2.11.4.GIT