Split cadena por espacios individuales [duplicado]

Posible duplicado:
¿Cómo dividir una cadena en C ++?

Necesito dividir una cadena por espacios individuales y almacenarla en una matriz de cadenas. Puedo lograr esto usando un istringstream, pero lo que no puedo lograr es esto:

Quiero que cada espacio termine la palabra actual. Entonces, si hay dos espacios consecutivos, un elemento de mi matriz debería estar en blanco.

Por ejemplo

(el guión bajo indica espacio)

This_is_a_string.
gets split into:
A[0] = This
A[1] = is
A[2] = a
A[3] = string.

This__is_a_string.
gets split into:
A[0] = This
A[1] = ""
A[2] = is
A[3] = a
A[4] = string.

¿Cómo puedo implementar esto?

Respuestas a la pregunta(7)

Su respuesta a la pregunta