Proving algorithms is much harder than coding algorithms. I think you should get good at doing the analysis yourself. It is a very valuable skill.
There are entire books dedicated to string matching. Maybe something similar to your idea is in one of them.
Here are a couple: https://www.amazon.com/Algorithms-Strings-Trees-Sequences-Computational/dp/0521585198/
https://www.amazon.com/Algorithms-Strings-Maxime-Crochemore/dp/1107670993/
Also, in the C code, why are you starting the clock before the “start of program” print statement (instead of after)? Printing text to the screen is a slow process and will add a lot of time to the clock.
My personal recommendation for a more algorithms heavy first look into bioinformatics, and to understand what algorithms are likely to be very useful all around in the field, would be Dan Gusfield's book on the topic: https://www.amazon.com/gp/product/0521585198/ref=dbs_a_def_rwt_hsch_vapi_taft_p1_i1
It was written quite some time ago so it is just a starting point, but it is a very, very good one in my opinion. It focuses largely on algorithms based around suffix graphs for doing string matching problems. But, as he does a good job of explaining, alongside good historical context for the importance of the algorithms discussed, string matching is a core part of bioinformatics. A lot of folks here have pointed out some newer stuff which is great too and you would need to follow up this book with additional newer resources (I actually really wish Dr. Gusfield would write a followup to this book covering the useful stuff since this book was written xD and am wondering what the best followup book to this would be for myself).