strings
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
strings [2012/08/20 19:38] – [Funciones para manipular strings] lmateu | strings [2015/03/31 12:50] (actual) – [Leer de la entrada estándar] lmateu | ||
---|---|---|---|
Línea 13: | Línea 13: | ||
Tanto r como s representan el mismo string. | Tanto r como s representan el mismo string. | ||
- | {{ :strings.png? | + | {{ :strings2.png? |
La única diferencia es que el string " | La única diferencia es que el string " | ||
Línea 28: | Línea 28: | ||
^ Nombre ^ Ejemplo ^ Descripción ^ | ^ Nombre ^ Ejemplo ^ Descripción ^ | ||
| strlen | int l= strlen(" | | strlen | int l= strlen(" | ||
- | | strcmp | strcmp(fuente, | + | | strcmp | strcmp(fuente, |
+ | | strncmp | strncmp(fuente, | ||
| strcpy | strcpy(dest, | | strcpy | strcpy(dest, | ||
| strncpy | strncpy(dest, | | strncpy | strncpy(dest, | ||
| strcat | strcat(dest, | | strcat | strcat(dest, | ||
- | * La función strcmp entrega | + | * La función strcmp entrega |
+ | * La función strncmp es similar solo que compara hasta n caracteres. | ||
* Antes de invocar strcpy y strcat se debe reservar suficiente memoria en dest para almacenar el resultado. | * Antes de invocar strcpy y strcat se debe reservar suficiente memoria en dest para almacenar el resultado. | ||
* En el caso de strncpy, se debe reservar exactamente n caracteres. | * En el caso de strncpy, se debe reservar exactamente n caracteres. | ||
Línea 61: | Línea 63: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | === Ejercicio 1 === | ||
+ | |||
+ | Resuelva la pregunta 1 del [[http:// | ||
==== Desplegar texto en la salida estándar ==== | ==== Desplegar texto en la salida estándar ==== | ||
Línea 85: | Línea 91: | ||
^ función ^ ejemplo ^ descripción ^ | ^ función ^ ejemplo ^ descripción ^ | ||
| fprintf(// | | fprintf(// | ||
- | | sprintf(// | + | | sprintf(// |
* La variable stderr corresponde a la salida estándar de errores. | * La variable stderr corresponde a la salida estándar de errores. | ||
Línea 148: | 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. | Programe la función que lleva un string a letras mayúsculas. | ||
Línea 167: | Línea 173: | ||
^ función ^ ejemplo ^ descripción ^ | ^ función ^ ejemplo ^ descripción ^ | ||
| getchar() | '' | | getchar() | '' | ||
- | | gets(// | + | | gets(// |
| fgets(// | | fgets(// | ||
| scanf(// | | scanf(// | ||
- | === Ejercicio === | + | **Observación**: |
+ | 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. | ||
+ | |||
+ | === 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 184: | Línea 194: | ||
int largo= 0; | int largo= 0; | ||
- | while (gets(lin)!=NULL) { | + | |
+ | while (fgets(lin, N, stdin)!=NULL) { | ||
if (strlen(lin)> | if (strlen(lin)> | ||
strcpy(larga, | strcpy(larga, |
strings.1345491495.txt.gz · Última modificación: 2012/08/20 19:38 por lmateu