From c55c5080200f0f31ce05485af7cce4cf4204ac40 Mon Sep 17 00:00:00 2001 From: sinanmohd Date: Sat, 18 Jun 2022 12:39:19 +0530 Subject: 5.5 --- 5.5.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 5.5.c (limited to '5.5.c') diff --git a/5.5.c b/5.5.c new file mode 100644 index 0000000..bd14a40 --- /dev/null +++ b/5.5.c @@ -0,0 +1,54 @@ +#include + +char *strncpy(char to[], const char from[], int till); +char *strncat(char to[], const char from[], int till); +int strncmp_sneed(const char str1[], const char str2[], int till); + +int +main(void) +{ + char str[10]; + printf("%s\n", strncpy(str, "gnu linux", 3)); + + printf("%s\n", strncat(str, " linux", 6)); + + if (!strncmp_sneed("seed", "seed feed", 3)) + printf("suckses\n"); + + return 0; +} + +char *strncpy(char to[], const char from[], int till) +{ + if (from[till] != '\0') + to[till+1] = '\0'; + + while (till--) + *(to+till) = *(from+till); + + return to; +} + +char *strncat(char to[], const char from[], int till) +{ + char *to_og = to; + + while (*to) + ++to; + + while (till--) + *(to+till) = *(from+till); + + return to_og; +} + +int +strncmp_sneed(const char str1[], const char str2[], int till) +{ + int count; + + for (count = 0, --till; count < till && *(str1+count) == *(str2+count); count++) + ; + + return *(str1+count) - *(str2+count); +} -- cgit v1.2.3