How to implement the strstr function in C

1 Answer

0 votes
#include <stdio.h>
#include <string.h>

char* strstr_(const char* s1, const char* s2) {
	// find first occurrence of s2 in s1
	if (*s2 == '\0')
		return ((char*)s1);
	for (; (s1 = strchr(s1, *s2)) != NULL; s1++) { // first char
		const char *p1, *p2;

		for (p1 = s1, p2 = s2; ; ) // rest of the chars
			if (*++p2 == '\0')
				return (char*)s1;
			else if (*++p1 != *p2)
					break;
	}
	return NULL;
}


int main(void)
{
	const char str1[] = "c dart java c++ java php c";
	const char str2[] = "java";

	char* p = strstr_(str1, str2);

	printf("%s\n", p);

	return 0;
}




/*
run:

java c++ java php c
 
*/

 



answered Dec 20, 2022 by avibootz
...