Daniel Alejandro Cumaco Robayo
Preguntatener en cuenta que el largo de la palabra no se calcula, lo que hace el compilador es agregar un “flag” de terminacion nulo en la palabra, asi por ejemplo printf(), sabe hasta donde imprimir la palabra “Mauro”, me explico:
Aqui definimos una variable de tipo “char *” la la cual le damos la direccion a la palabra mauro, la cual esta almacenada en el “stack”, (Sector de memoria de lectura durante el runtime)
char *str = "Mauro";
la cosa es que en realidad lo que hizimos fue hacer esto:
char *str = "Mauro\0";
el carater “\0” es un caracter especial que indica una terminacion nula, en pocas palabras es el caracter de la posicion cero en la tabla ASCII
por lo cual pordemos iterar sobre toda la palabra sin saber implicitamente su largo
// libreria para la funcion "write" #include <unistd.h> void put_char(char c) { // write es una funcion de llamada al sistema para imprimir // al standart output, por ahora pueden pensarlo como // que simplemente esta imprimiendo un caracter write(1, &c, 1); } int main(void) { // definimor la variable char *str = "Mauro"; // en cada iteracion movemos el puntero hasta que el valor // que almacena el mismo sera '\0' for (; *str; str++) { put_char(*str); } // imprimimos la nueva linea // recuerden que "\n" != '\n' put_char('\n'); }
si tienen algun duda no duden en preguntar, y agradecere su laik prros :v
