Y no es por ir contracorriente, que no, pero
Swastik ya que usas la librería conio.h podrías "exprimirla" un poco más y, eso sí, sin que la cadena contenga el punto final ya que considero que éste es sólo para indicar el final de la cadena y no parte de la misma, bajo mi punto de vista claro, acertado, o no vaya usted a saber.....:
Código C++:
Ver original#include <stdio.h>
#include <conio.h>
int main(){
int j=0;
char caracteres[50];
printf("\nIntroduzca una frase, para terminar pulse '.' (punto): "); while ((caracteres[j] = getche()) != '.' && j < 50)
j++;
caracteres[j]= '\0';
printf("\ncadena: %s | caracteres: %d\n",caracteres
,j
); return 0;
}
Personalmente soy partidario de no usar "cosas" que no formen parte del estándar del C, es decir usaría getchar en lugar de getche y evitaría con ello el uso de la mencionada librería conio.h, pero no dejo de reconocer que su uso está muy extendido, basta repasar los códigos que se cuelgan en el foro para darse cuenta de ello.
Y me temo que el mal está más en los enseñantes, que no se actualizan, que en los alumnos a los que directamente se les induce a hacer uso de ello. Pero, en fin, eso es ya otra historia.
¡¡¡Saluditos!!!