Q:

store 32 bit int into a char buffer

I'm working with a UDP program which collects data to be sent into a char array, but the data I need to send is a 32 bit int. How can I send this data?

A:

In C, integer types (or any type for that matter) can safely be represented in a character arrays and back using pointer casts. This is guaranteed by the C standard.
In socket programming, you'll usually want to perform this operation on an integer that you previously translated to network-byte order:
uint32_t translated_int = htonl(original_int);
char *binary_string = (char *)&translated_int;
// binary_string now a pointer to the translated_int, represented as a char array

If you need a copy to pass it around, you can do so with memcpy instead:
char binary_string[ sizeof(translated_int) ];
memcpy(binary_string, &translated_int, sizeof translated_int);
// binary_string now a copy of translated_int, represented as a char array

If you want to translate it back:
uint32_t translated_int, original_int;
memcpy(&translated_int, binary_string, sizeof translated_int);
original_int = ntohl(translated_int);

