No, bajo ningun concepto hay siempre un espacio en una cadena y no es correcto el codigo cuando no lo hay ya que continua leyendo sobre memoria
indefinida y escribiendo lo que haya en la misma.
¿No es mas facil probarlo acaso? Especialmente si recien estas aprendiendo y sos una newbie en este foro.
Código:
// char *p = "hola"; //cadena literal
char in[80]; //es solo un ejemplo por supuesto
cin >> in;
char *p = (char*)∈
while((*p)!=' ')// mientras el contenido d p sea diferente a un espacio
{
//if (!*p) { break; } //con esto POR EJEMPLO se soluciona el problema
cout<<(*p);//imprimes
p++;//haces q el puntero avanc
}
}
No se que esperas que sepa el compilador (en tiempo de compilacion justamente) de una cadena que vaya a escribir un usuario en tiempo de ejecucion.