Search and replace over multiple files is difficult in my editor. There are plenty of tricks that can be done with find, xargs and sed
I would add these modifications to Dillon's answer:
The -le option should be added to the grep command.
vim `find . -name '*.c' -exec grep -le '\' {} \;`
Then you are in Vim, but you don't have the opportunity to choose what to replace, add c option at the end for interactive replacements and bufdo at the beginning for walking through every file:
:bufdo %s/junk/rubbish/gce
Later you save all your work:
:bufdo wq!