Herramientas de usuario

Herramientas del sitio


strings

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
strings [2014/08/06 16:48] – [Strings] lmateustrings [2015/03/31 12:50] (actual) – [Leer de la entrada estándar] lmateu
Línea 63: Línea 63:
 } }
 </code> </code>
 +
 +=== Ejercicio 1 ===
 +
 +Resuelva la pregunta 1 del [[http://users.dcc.uchile.cl/~lmateu/CC3301/controles/c1-141.pdf|control 1 del semestre Otoño de 2014]].  Pruebe su solución con el archivo [[http://users.dcc.uchile.cl/~lmateu/CC3301/download/subst.zip|subst.zip]].  Implemente su solución en el archivo substituir.c.  Compílelo con make y ejecútelo.  El programa le dirá si su solución satisface todos los tests del enunciado.
  
 ==== Desplegar texto en la salida estándar ==== ==== Desplegar texto en la salida estándar ====
Línea 150: Línea 154:
   * argv[0] siempre corresponde al nombre del ejecutable.   * argv[0] siempre corresponde al nombre del ejecutable.
  
-=== Ejercicio ===+=== Ejercicio ===
  
 Programe la función que lleva un string a letras mayúsculas.  Por ejemplo: Programe la función que lleva un string a letras mayúsculas.  Por ejemplo:
Línea 175: Línea 179:
 **Observación**: ''gets'' no recibe como parámetro el tamaño del arreglo de caracteres en donde se deja el resultado **Observación**: ''gets'' no recibe como parámetro el tamaño del arreglo de caracteres en donde se deja el resultado
 y por lo tanto no se debe usar para leer datos de la red o de un archivo de origen desconocido porque puede y por lo tanto no se debe usar para leer datos de la red o de un archivo de origen desconocido porque puede
-ser blanco de ataques de gusanos o virus.  En su lugar use ''fgets''.+ser blanco de ataques de gusanos o virus.  Consulte en la web por //buffer overflow attack//.  En su lugar use ''fgets''.
  
-=== Ejercicio ===+=== Ejercicio ===
  
 El siguiente programa despliega la línea más larga de la entrada estándar: El siguiente programa despliega la línea más larga de la entrada estándar:
Línea 190: Línea 194:
   int largo= 0;   int largo= 0;
  
-  while (gets(lin)!=NULL) {+  /* nunca while (gets(lin)!=NULL) pues sería una brecha de seguridad */ 
 +  while (fgets(lin, N, stdin)!=NULL) {
     if (strlen(lin)>largo) {     if (strlen(lin)>largo) {
       strcpy(larga, lin);       strcpy(larga, lin);
strings.1407343685.txt.gz · Última modificación: 2014/08/06 16:48 por lmateu