Find a String in an Array
static functions

Both of your getNameNumber and printNumber should be made static, because I doubt that you plan to export them.

Simpler functions

printf("Enter the amount of people: ");


can simply use puts, which doesn't have any formatting code in it. You use puts below, so this would also help with consistency.

Stack allocation

person people[size];


is not available in all versions of C, since size is not a constant. For best portability you'd want to malloc this, or perhaps alloca if you feel strongly that the memory should be in the stack and not on the heap.

const

printNumber's array arguments should be const, since you don't mutate them.

Your questions


  To avoid a very long name that exceeds char's size, I limit it to 255. Is there a better way?


For your use case, not really. A fixed array is the most appropriate. However, your code is vulnerable to overflows. You should be putting a width in your format specifier.


  To avoid buffer, I included a space before % sign and not use getchar(). Is there a better way?


I'm not sure which usage of % you're referring to, but they all look fairly sane, so no; there's not really a better way.