char *mon_strstr(const char *haystack, const char *needle){ int h_size = mon_strlen(haystack), n_size = mon_strlen(needle); int i=0; if(n_size==0){ return (char*)haystack; } while(i<h_size-n_size){ i++; if(mon_strncmp(haystack+i, needle, n_size)==0) return (char*)haystack+i; } return NULL; }
int main() { char s[] = "toto"; printf("%d\n", mon_strlen(s)); char s1[20] = "abce"; char s2[] = "abcd"; printf("%d\n", mon_strcmp(s1, s2)); printf("%d\n", mon_strncmp(s1, s2, 3)); printf("%s + %s = %s \n", s1, s2, mon_strcat(s1, s2)); printf("%c\n", *mon_strchr(s, 'o')); char str[] = "abcdef"; char substr[] = "cd"; printf("%s\n", mon_strstr(str, substr)); return 0; }
MU_TEST(mon_strncmp, monstrncmp_a_lower) { MU_ASSERT_LESS(mon_strncmp("ABBWYY","ABCTYU", 3), 0) ; }
MU_TEST(mon_strncmp, monstrncmp_a_greater) { MU_ASSERT_GREATER(mon_strncmp("ABDTYY","ABCTYU", 3), 0) ; }
MU_TEST(mon_strncmp, monstrncmp_n_restrict) { MU_ASSERT_EQUAL(mon_strncmp("ABCDEF","ABCTYU", 3), 0) ; }
MU_TEST(mon_strncmp, mon_strncmp_a_equals_b_n_too_large) { MU_ASSERT_EQUAL(mon_strncmp("","", 6), 0) ; }
MU_TEST(mon_strncmp, mon_strncmp_a_equals_b_vide) { MU_ASSERT_EQUAL(mon_strncmp("","", 0), 0) ; }