<div dir="ltr">Hola Antonio,<div class="gmail_extra"><br></div><div class="gmail_extra" style>La verdad es que no hay muchas otras opciones para resolver este problema. Una posible mejora es intentar no crear otra cadena. Podemos usar 'strchr()' para buscar '\n'. La idea sería:<br>
<br>1. Buscar '\n'</div><div class="gmail_extra" style>2. Cambiarlo por el carácter nulo, '\0'</div><div class="gmail_extra" style>3. Mostrar la subcadena</div><div class="gmail_extra" style>4. Cambiar el carácter nulo anterior por '\n' original</div>
<div class="gmail_extra" style><br></div><div class="gmail_extra" style>Esto supondría que no podemos pasar cadenas originalmente constantes, como son las literales. Supogno que podríamos hacer algo parecido con 'strtok()', pero tenemos más control si usamos 'strchr()'.</div>
<div class="gmail_extra" style><br></div><div class="gmail_extra" style><br></div><div class="gmail_extra" style>Aparte de esto, te comento que puedes optimizar el bucle 'while'. Escribes:<br><br><div class="gmail_extra">
// Las siguientes llamadas con NULL</div><div class="gmail_extra">while( linea )</div><div class="gmail_extra">{</div><div class="gmail_extra">  linea = strtok( NULL, "\n" );</div><div class="gmail_extra">  if( linea ) {... }<br>
}</div></div><div class="gmail_extra"><br></div><div class="gmail_extra" style>Compruebas 'linea' dos veces en cada iteración. Ten presente que 'while' contiene el comportamiento de 'if'. Tomando esto en cuenta, podemos reescribir el bucle así:</div>
<div class="gmail_extra" style><br></div><div class="gmail_extra" style><div class="gmail_extra"><div class="gmail_extra">// Las siguientes llamadas con NULL</div><div class="gmail_extra">linea = strtok( NULL, "\n" );</div>
<div class="gmail_extra">while( linea )</div><div class="gmail_extra">{</div><div class="gmail_extra">  ...<br></div><div class="gmail_extra">  linea = strtok( NULL, "\n" );<br></div><div class="gmail_extra">}</div>
<div><br></div><div style>O incluso,</div><div style><br></div></div></div><div class="gmail_extra" style><div class="gmail_extra">// Las siguientes llamadas con NULL</div><div class="gmail_extra">while( linea = strtok( NULL, "\n" ) )<br>
</div><div class="gmail_extra">{</div><div class="gmail_extra">  ...<br></div><div class="gmail_extra">}<br></div><div><br></div><div><br></div><div style>Espero que esto te sirva.</div></div><div class="gmail_extra"><br>
</div><div class="gmail_extra" style>Steven</div><div class="gmail_extra" style><br></div></div>