What have you tried? You won't get any full answers in here - this is not a do-your-homework site.
Also, a hint: Suppose an automaton A decides a language L. Then if you change all accepting states to non-accepting ones and vice versa in A, the resulting automaton decides the complement of L.
This particular problem is useful because it is not only about finite automata. To develop the required automaton, you need to come up with an algorithm that searches for a substring in a string. This is a problem of fundamental importance and is arguably one of the most successful applications of theoretical computer science. The automaton can be straightforwardly translated into any conventional programming language.