Buenos días.
Primero antes que todo, normalmente un compilador no debería dejarte compilar el main sin algún tipo de dato definido. (Creo que en
C99 si lo permite, pero es muy mala práctica, aún así cuando el compilador sabe que ahí irá un
int). El sistema operativo necesita que cada programa devuelva un código, en el POSIX se establece
Código C:
Ver original#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
Como te dijeron acá arriba, el problema es que no estás incrementado la variable
j.
Aunque evidentemente aquí la estás incrementado, no estás modificando su contenido, por consecuente, siempre será
0+1.
Otra cosa más, en el momento que tratas de imprimirla,
Estás obteniendo el largo de ella, y luego ¿imprimiendo la variable completa por el tamaño de ésta?, ejemplo. Si colocas en la variable "Hola", te imprimirá "Hola" 4 veces. Si en caso lo que querías hacer era imprimir la variable por caracteres podías hacer
Código C:
Ver originalfor (i = 0; i < largo; i++)
{
}
ó más simple.
Te daré un ejemplo mío de tu código más simple.
Código C:
Ver original#include <stdio.h>
#include <stdlib.h>
int main (void)
{
char buffer[256] = {0};
unsigned int size;
for (size = 0; size < sizeof (buffer); size++)
{
if (buffer[size] == '.') break;
}
printf("String: %.265s | Size: %d\n", buffer
, size
++);
return EXIT_SUCCESS;
}
¿Qué diferencia cuenta sobre tu código?, maneja más sencillo la recolección de caracteres y también evitas desbordamientos de buffers que hablé de él, en otro tema (
http://www.forosdelweb.com/4499682-post2.html), no es el mismo caso, pero se entiende el objetivo.
Como último, el tema que te recomendé arriba, también hablé de la librería conio.h, échale un vistazo.
Un saludos.