gonzalo f. perez paina

58
Inform´ atica II Caracteres y cadenas Gonzalo F. Perez Paina UniversidadTecnol´ogicaNacional Facultad Regional C´ ordoba UTN-FRC – 2021 –

Upload: others

Post on 29-Jul-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Gonzalo F. Perez Paina

Informatica IICaracteres y cadenas

Gonzalo F. Perez Paina

Universidad Tecnologica NacionalFacultad Regional Cordoba

UTN-FRC

– 2021 –

Page 2: Gonzalo F. Perez Paina

CadenasI ¿Existe el tipo de datos string (cadena) en C?

I ¿Como se almacenan/tratan las cadenas en C?

Gonzalo Perez Paina Informatica II 1 / 9

Page 3: Gonzalo F. Perez Paina

CadenasI ¿Existe el tipo de datos string (cadena) en C?I ¿Como se almacenan/tratan las cadenas en C?

Gonzalo Perez Paina Informatica II 1 / 9

Page 4: Gonzalo F. Perez Paina

CadenasI ¿Existe el tipo de datos string (cadena) en C?I ¿Como se almacenan/tratan las cadenas en C?

char cadena1[] = {67, 97, 100, 49, 0};printf(" %s", cadera1); // ¿Que se imprime?

Gonzalo Perez Paina Informatica II 1 / 9

Page 5: Gonzalo F. Perez Paina

CadenasI ¿Existe el tipo de datos string (cadena) en C?I ¿Como se almacenan/tratan las cadenas en C?

char cadena1[] = {67, 97, 100, 49, 0};printf(" %s", cadera1); // Imprime "Cad1"

Gonzalo Perez Paina Informatica II 1 / 9

Page 6: Gonzalo F. Perez Paina

CadenasI ¿Existe el tipo de datos string (cadena) en C?I ¿Como se almacenan/tratan las cadenas en C?

En lenguaje C las cadenas son arreglos de caracteres (ASCII)

Gonzalo Perez Paina Informatica II 1 / 9

Page 7: Gonzalo F. Perez Paina

CadenasI ¿Existe el tipo de datos string (cadena) en C?I ¿Como se almacenan/tratan las cadenas en C?

En lenguaje C las cadenas son arreglos de caracteres (ASCII)

Ejemplos:char cadena1[] = {'C', 'a', 'd', '1', '\0'};

Gonzalo Perez Paina Informatica II 1 / 9

Page 8: Gonzalo F. Perez Paina

CadenasI ¿Existe el tipo de datos string (cadena) en C?I ¿Como se almacenan/tratan las cadenas en C?

En lenguaje C las cadenas son arreglos de caracteres (ASCII)

Ejemplos:char cadena1[] = {'C', 'a', 'd', '1', '\0'};char cadena2[5] = {'C', 'a', 'd', '2', '\0'};

Gonzalo Perez Paina Informatica II 1 / 9

Page 9: Gonzalo F. Perez Paina

CadenasI ¿Existe el tipo de datos string (cadena) en C?I ¿Como se almacenan/tratan las cadenas en C?

En lenguaje C las cadenas son arreglos de caracteres (ASCII)

Ejemplos:char cadena1[] = {'C', 'a', 'd', '1', '\0'};char cadena2[5] = {'C', 'a', 'd', '2', '\0'};char cadena3[4] = {'C', 'a', 'd', '3', '\0'};

Gonzalo Perez Paina Informatica II 1 / 9

Page 10: Gonzalo F. Perez Paina

CadenasI ¿Existe el tipo de datos string (cadena) en C?I ¿Como se almacenan/tratan las cadenas en C?

En lenguaje C las cadenas son arreglos de caracteres (ASCII)

Ejemplos:char cadena1[] = {'C', 'a', 'd', '1', '\0'};char cadena2[5] = {'C', 'a', 'd', '2', '\0'};char cadena3[4] = {'C', 'a', 'd', '3', '\0'}; // ERROR

Gonzalo Perez Paina Informatica II 1 / 9

Page 11: Gonzalo F. Perez Paina

CadenasI ¿Existe el tipo de datos string (cadena) en C?I ¿Como se almacenan/tratan las cadenas en C?

En lenguaje C las cadenas son arreglos de caracteres (ASCII)

Ejemplos:char cadena1[] = {'C', 'a', 'd', '1', '\0'};char cadena2[5] = {'C', 'a', 'd', '2', '\0'};char cadena3[4] = {'C', 'a', 'd', '3', '\0'}; // ERRORchar cadena4[] = {67, 97, 100, 52, 0}; // ASCII

Gonzalo Perez Paina Informatica II 1 / 9

Page 12: Gonzalo F. Perez Paina

CadenasI ¿Existe el tipo de datos string (cadena) en C?I ¿Como se almacenan/tratan las cadenas en C?

En lenguaje C las cadenas son arreglos de caracteres (ASCII)

Ejemplos:char cadena1[] = {'C', 'a', 'd', '1', '\0'};char cadena2[5] = {'C', 'a', 'd', '2', '\0'};char cadena3[4] = {'C', 'a', 'd', '3', '\0'}; // ERRORchar cadena4[] = {67, 97, 100, 52, 0}; // ASCIIchar cadena5[] = "Cad5";

Gonzalo Perez Paina Informatica II 1 / 9

Page 13: Gonzalo F. Perez Paina

CadenasI ¿Existe el tipo de datos string (cadena) en C?I ¿Como se almacenan/tratan las cadenas en C?

En lenguaje C las cadenas son arreglos de caracteres (ASCII)

Ejemplos:char cadena1[] = {'C', 'a', 'd', '1', '\0'};char cadena2[5] = {'C', 'a', 'd', '2', '\0'};char cadena3[4] = {'C', 'a', 'd', '3', '\0'}; // ERRORchar cadena4[] = {67, 97, 100, 52, 0}; // ASCIIchar cadena5[] = "Cad5";char *cadena6 = "Cad6";

Gonzalo Perez Paina Informatica II 1 / 9

Page 14: Gonzalo F. Perez Paina

CadenasI ¿Existe el tipo de datos string (cadena) en C?I ¿Como se almacenan/tratan las cadenas en C?

En lenguaje C las cadenas son arreglos de caracteres (ASCII)

Ejemplos:char cadena1[] = {'C', 'a', 'd', '1', '\0'};char cadena2[5] = {'C', 'a', 'd', '2', '\0'};char cadena3[4] = {'C', 'a', 'd', '3', '\0'}; // ERRORchar cadena4[] = {67, 97, 100, 52, 0}; // ASCIIchar cadena5[] = "Cad5";char *cadena6 = "Cad6";

Imprimirprintf("La cadena es: %s\n", cadena6);

Gonzalo Perez Paina Informatica II 1 / 9

Page 15: Gonzalo F. Perez Paina

CadenasI ¿Existe el tipo de datos string (cadena) en C?I ¿Como se almacenan/tratan las cadenas en C?

En lenguaje C las cadenas son arreglos de caracteres (ASCII)

Ejemplos:char cadena1[] = {'C', 'a', 'd', '1', '\0'};char cadena2[5] = {'C', 'a', 'd', '2', '\0'};char cadena3[4] = {'C', 'a', 'd', '3', '\0'}; // ERRORchar cadena4[] = {67, 97, 100, 52, 0}; // ASCIIchar cadena5[] = "Cad5";char *cadena6 = "Cad6";

Imprimirprintf("La cadena es: %s\n", cadena6);

I ASCII: American Standard Code for Information Interchange (Tabla)I Constante de caracter: 'a', '\0', '\n', etc.

Gonzalo Perez Paina Informatica II 1 / 9

Page 16: Gonzalo F. Perez Paina

Arreglo de caracteresArchivo cadenas.c

1 #include <stdio.h>2

3 int main(void)4 {5 char cadena1[] = {'C', 'a', 'd', '1', '\0'};6 char cadena2[5] = {'C', 'a', 'd', '2', '\0'};7 /* char cadena3[4] = {'C', 'a', 'd', '3', '\0'};*/8 char cadena4[] = {67, 97, 100, 52, 0};9 char cadena5[] = "Cad5";

10 char *cadena6 = "Cad6";11

12 printf("Cadena 1: %s\n", cadena1);13 printf("Cadena 2: %s\n", cadena2);14 /* printf("Cadena 3: %s\n", cadena3);*/15 printf("Cadena 4: %s\n", cadena4);16 printf("Cadena 5: %s\n", cadena5);17 printf("Cadena 6: %s\n", cadena6);18

19 return 0;20 }

Gonzalo Perez Paina Informatica II 2 / 9

Page 17: Gonzalo F. Perez Paina

Cadenas en lenguaje C

Serie de caracteres tratados como una unica unidad

I En C, una cadena es un arreglo de caracteres terminado con el caracternulo '\0'

I Puede incluir letras, dıgitos y caracteres especiales como +, -, *, /, $, etc.I En C, las literales o constantes de cadenas se escriben en comillas dobles.I Se tiene acceso mediante el puntero al primer caracter.

char color[] = "verde";char *ptrColor = "verde";

I Un arreglo de caracteres debe tener el tamano adecuado para contener lacadena mas el caracter de terminacion.

char cadena[20];scanf(" %s", cadena);

Gonzalo Perez Paina Informatica II 3 / 9

Page 18: Gonzalo F. Perez Paina

Cadenas en lenguaje C

Serie de caracteres tratados como una unica unidad

I En C, una cadena es un arreglo de caracteres terminado con el caracternulo '\0'

I Puede incluir letras, dıgitos y caracteres especiales como +, -, *, /, $, etc.I En C, las literales o constantes de cadenas se escriben en comillas dobles.I Se tiene acceso mediante el puntero al primer caracter.

char color[] = "verde";char *ptrColor = "verde";

I Un arreglo de caracteres debe tener el tamano adecuado para contener lacadena mas el caracter de terminacion.

char cadena[20];scanf(" %s", cadena);

Gonzalo Perez Paina Informatica II 3 / 9

Page 19: Gonzalo F. Perez Paina

Cadenas en lenguaje C

Serie de caracteres tratados como una unica unidad

I En C, una cadena es un arreglo de caracteres terminado con el caracternulo '\0'

I Puede incluir letras, dıgitos y caracteres especiales como +, -, *, /, $, etc.

I En C, las literales o constantes de cadenas se escriben en comillas dobles.I Se tiene acceso mediante el puntero al primer caracter.

char color[] = "verde";char *ptrColor = "verde";

I Un arreglo de caracteres debe tener el tamano adecuado para contener lacadena mas el caracter de terminacion.

char cadena[20];scanf(" %s", cadena);

Gonzalo Perez Paina Informatica II 3 / 9

Page 20: Gonzalo F. Perez Paina

Cadenas en lenguaje C

Serie de caracteres tratados como una unica unidad

I En C, una cadena es un arreglo de caracteres terminado con el caracternulo '\0'

I Puede incluir letras, dıgitos y caracteres especiales como +, -, *, /, $, etc.I En C, las literales o constantes de cadenas se escriben en comillas dobles.

I Se tiene acceso mediante el puntero al primer caracter.

char color[] = "verde";char *ptrColor = "verde";

I Un arreglo de caracteres debe tener el tamano adecuado para contener lacadena mas el caracter de terminacion.

char cadena[20];scanf(" %s", cadena);

Gonzalo Perez Paina Informatica II 3 / 9

Page 21: Gonzalo F. Perez Paina

Cadenas en lenguaje C

Serie de caracteres tratados como una unica unidad

I En C, una cadena es un arreglo de caracteres terminado con el caracternulo '\0'

I Puede incluir letras, dıgitos y caracteres especiales como +, -, *, /, $, etc.I En C, las literales o constantes de cadenas se escriben en comillas dobles.I Se tiene acceso mediante el puntero al primer caracter.

char color[] = "verde";char *ptrColor = "verde";

I Un arreglo de caracteres debe tener el tamano adecuado para contener lacadena mas el caracter de terminacion.

char cadena[20];scanf(" %s", cadena);

Gonzalo Perez Paina Informatica II 3 / 9

Page 22: Gonzalo F. Perez Paina

Cadenas en lenguaje C

Serie de caracteres tratados como una unica unidad

I En C, una cadena es un arreglo de caracteres terminado con el caracternulo '\0'

I Puede incluir letras, dıgitos y caracteres especiales como +, -, *, /, $, etc.I En C, las literales o constantes de cadenas se escriben en comillas dobles.I Se tiene acceso mediante el puntero al primer caracter.

char color[] = "verde";char *ptrColor = "verde";

I Un arreglo de caracteres debe tener el tamano adecuado para contener lacadena mas el caracter de terminacion.

char cadena[20];scanf(" %s", cadena);

Gonzalo Perez Paina Informatica II 3 / 9

Page 23: Gonzalo F. Perez Paina

Cadenas en lenguaje C

Serie de caracteres tratados como una unica unidad

I En C, una cadena es un arreglo de caracteres terminado con el caracternulo '\0'

I Puede incluir letras, dıgitos y caracteres especiales como +, -, *, /, $, etc.I En C, las literales o constantes de cadenas se escriben en comillas dobles.I Se tiene acceso mediante el puntero al primer caracter.

char color[] = "verde";char *ptrColor = "verde";

I Un arreglo de caracteres debe tener el tamano adecuado para contener lacadena mas el caracter de terminacion.

char cadena[20];scanf(" %s", cadena);

Gonzalo Perez Paina Informatica II 3 / 9

Page 24: Gonzalo F. Perez Paina

Biblioteca para el manejo de caracteres

I Archivo de cabecera <ctype.h>I Incluye funciones para realizar pruebas o verificacion y para la

manipulacion de datos tipo caracteres.

Algunas funciones son:I int isdigit(int c)I int isalpha(int c)I int isalnum(int c)I int isxdigit(int c)I int islower(int c)I int isupper(int c)I int tolower(int c)I int toupper(int c)

Gonzalo Perez Paina Informatica II 4 / 9

Page 25: Gonzalo F. Perez Paina

Biblioteca para el manejo de caracteres

I Archivo de cabecera <ctype.h>I Incluye funciones para realizar pruebas o verificacion y para la

manipulacion de datos tipo caracteres.

Algunas funciones son:I int isdigit(int c)

I int isalpha(int c)I int isalnum(int c)I int isxdigit(int c)I int islower(int c)I int isupper(int c)I int tolower(int c)I int toupper(int c)

Gonzalo Perez Paina Informatica II 4 / 9

Page 26: Gonzalo F. Perez Paina

Biblioteca para el manejo de caracteres

I Archivo de cabecera <ctype.h>I Incluye funciones para realizar pruebas o verificacion y para la

manipulacion de datos tipo caracteres.

Algunas funciones son:I int isdigit(int c)I int isalpha(int c)

I int isalnum(int c)I int isxdigit(int c)I int islower(int c)I int isupper(int c)I int tolower(int c)I int toupper(int c)

Gonzalo Perez Paina Informatica II 4 / 9

Page 27: Gonzalo F. Perez Paina

Biblioteca para el manejo de caracteres

I Archivo de cabecera <ctype.h>I Incluye funciones para realizar pruebas o verificacion y para la

manipulacion de datos tipo caracteres.

Algunas funciones son:I int isdigit(int c)I int isalpha(int c)I int isalnum(int c)

I int isxdigit(int c)I int islower(int c)I int isupper(int c)I int tolower(int c)I int toupper(int c)

Gonzalo Perez Paina Informatica II 4 / 9

Page 28: Gonzalo F. Perez Paina

Biblioteca para el manejo de caracteres

I Archivo de cabecera <ctype.h>I Incluye funciones para realizar pruebas o verificacion y para la

manipulacion de datos tipo caracteres.

Algunas funciones son:I int isdigit(int c)I int isalpha(int c)I int isalnum(int c)I int isxdigit(int c)

I int islower(int c)I int isupper(int c)I int tolower(int c)I int toupper(int c)

Gonzalo Perez Paina Informatica II 4 / 9

Page 29: Gonzalo F. Perez Paina

Biblioteca para el manejo de caracteres

I Archivo de cabecera <ctype.h>I Incluye funciones para realizar pruebas o verificacion y para la

manipulacion de datos tipo caracteres.

Algunas funciones son:I int isdigit(int c)I int isalpha(int c)I int isalnum(int c)I int isxdigit(int c)I int islower(int c)

I int isupper(int c)I int tolower(int c)I int toupper(int c)

Gonzalo Perez Paina Informatica II 4 / 9

Page 30: Gonzalo F. Perez Paina

Biblioteca para el manejo de caracteres

I Archivo de cabecera <ctype.h>I Incluye funciones para realizar pruebas o verificacion y para la

manipulacion de datos tipo caracteres.

Algunas funciones son:I int isdigit(int c)I int isalpha(int c)I int isalnum(int c)I int isxdigit(int c)I int islower(int c)I int isupper(int c)

I int tolower(int c)I int toupper(int c)

Gonzalo Perez Paina Informatica II 4 / 9

Page 31: Gonzalo F. Perez Paina

Biblioteca para el manejo de caracteres

I Archivo de cabecera <ctype.h>I Incluye funciones para realizar pruebas o verificacion y para la

manipulacion de datos tipo caracteres.

Algunas funciones son:I int isdigit(int c)I int isalpha(int c)I int isalnum(int c)I int isxdigit(int c)I int islower(int c)I int isupper(int c)I int tolower(int c)

I int toupper(int c)

Gonzalo Perez Paina Informatica II 4 / 9

Page 32: Gonzalo F. Perez Paina

Biblioteca para el manejo de caracteres

I Archivo de cabecera <ctype.h>I Incluye funciones para realizar pruebas o verificacion y para la

manipulacion de datos tipo caracteres.

Algunas funciones son:I int isdigit(int c)I int isalpha(int c)I int isalnum(int c)I int isxdigit(int c)I int islower(int c)I int isupper(int c)I int tolower(int c)I int toupper(int c)

Gonzalo Perez Paina Informatica II 4 / 9

Page 33: Gonzalo F. Perez Paina

Funciones de conversion de cadenas

I Archivo de cabecera <stdlib.h> (biblioteca general de utilerıa).I Convierte cadenas de dıgitos a enteros y valores en punto flotante.

Algunas funciones son:I double atof(const char *nptr)I int atoi(const char *nptr)I long atol(const char *nptr)I float strtof(const char *nptr, char **endptr)I double strtod(const char *nptr, char **endptr)

¿Que significa const char *nptr?

Gonzalo Perez Paina Informatica II 5 / 9

Page 34: Gonzalo F. Perez Paina

Funciones de conversion de cadenas

I Archivo de cabecera <stdlib.h> (biblioteca general de utilerıa).I Convierte cadenas de dıgitos a enteros y valores en punto flotante.

Algunas funciones son:I double atof(const char *nptr)

I int atoi(const char *nptr)I long atol(const char *nptr)I float strtof(const char *nptr, char **endptr)I double strtod(const char *nptr, char **endptr)

¿Que significa const char *nptr?

Gonzalo Perez Paina Informatica II 5 / 9

Page 35: Gonzalo F. Perez Paina

Funciones de conversion de cadenas

I Archivo de cabecera <stdlib.h> (biblioteca general de utilerıa).I Convierte cadenas de dıgitos a enteros y valores en punto flotante.

Algunas funciones son:I double atof(const char *nptr)I int atoi(const char *nptr)

I long atol(const char *nptr)I float strtof(const char *nptr, char **endptr)I double strtod(const char *nptr, char **endptr)

¿Que significa const char *nptr?

Gonzalo Perez Paina Informatica II 5 / 9

Page 36: Gonzalo F. Perez Paina

Funciones de conversion de cadenas

I Archivo de cabecera <stdlib.h> (biblioteca general de utilerıa).I Convierte cadenas de dıgitos a enteros y valores en punto flotante.

Algunas funciones son:I double atof(const char *nptr)I int atoi(const char *nptr)I long atol(const char *nptr)

I float strtof(const char *nptr, char **endptr)I double strtod(const char *nptr, char **endptr)

¿Que significa const char *nptr?

Gonzalo Perez Paina Informatica II 5 / 9

Page 37: Gonzalo F. Perez Paina

Funciones de conversion de cadenas

I Archivo de cabecera <stdlib.h> (biblioteca general de utilerıa).I Convierte cadenas de dıgitos a enteros y valores en punto flotante.

Algunas funciones son:I double atof(const char *nptr)I int atoi(const char *nptr)I long atol(const char *nptr)I float strtof(const char *nptr, char **endptr)

I double strtod(const char *nptr, char **endptr)

¿Que significa const char *nptr?

Gonzalo Perez Paina Informatica II 5 / 9

Page 38: Gonzalo F. Perez Paina

Funciones de conversion de cadenas

I Archivo de cabecera <stdlib.h> (biblioteca general de utilerıa).I Convierte cadenas de dıgitos a enteros y valores en punto flotante.

Algunas funciones son:I double atof(const char *nptr)I int atoi(const char *nptr)I long atol(const char *nptr)I float strtof(const char *nptr, char **endptr)I double strtod(const char *nptr, char **endptr)

¿Que significa const char *nptr?

Gonzalo Perez Paina Informatica II 5 / 9

Page 39: Gonzalo F. Perez Paina

Funciones de conversion de cadenas

I Archivo de cabecera <stdlib.h> (biblioteca general de utilerıa).I Convierte cadenas de dıgitos a enteros y valores en punto flotante.

Algunas funciones son:I double atof(const char *nptr)I int atoi(const char *nptr)I long atol(const char *nptr)I float strtof(const char *nptr, char **endptr)I double strtod(const char *nptr, char **endptr)

¿Que significa const char *nptr?

Gonzalo Perez Paina Informatica II 5 / 9

Page 40: Gonzalo F. Perez Paina

Manipulacion y comparacion de cadenas

I Archivo de cabecera <string.h>

Algunas funcione son:I char *strcpy(char *dest, const char *src)I char *strncpy(char *dest, const char *src, size t n)I char *strcat(char *dest, const char *src)I char *strncat(char *dest, const char *src, size t n)I char *strcmp(const char *s1, const char *s2)I char *strncmp(const char *s1, const char *s2, size t n)I size t strlen(const char *s)

Gonzalo Perez Paina Informatica II 6 / 9

Page 41: Gonzalo F. Perez Paina

Manipulacion y comparacion de cadenas

I Archivo de cabecera <string.h>

Algunas funcione son:I char *strcpy(char *dest, const char *src)

I char *strncpy(char *dest, const char *src, size t n)I char *strcat(char *dest, const char *src)I char *strncat(char *dest, const char *src, size t n)I char *strcmp(const char *s1, const char *s2)I char *strncmp(const char *s1, const char *s2, size t n)I size t strlen(const char *s)

Gonzalo Perez Paina Informatica II 6 / 9

Page 42: Gonzalo F. Perez Paina

Manipulacion y comparacion de cadenas

I Archivo de cabecera <string.h>

Algunas funcione son:I char *strcpy(char *dest, const char *src)I char *strncpy(char *dest, const char *src, size t n)

I char *strcat(char *dest, const char *src)I char *strncat(char *dest, const char *src, size t n)I char *strcmp(const char *s1, const char *s2)I char *strncmp(const char *s1, const char *s2, size t n)I size t strlen(const char *s)

Gonzalo Perez Paina Informatica II 6 / 9

Page 43: Gonzalo F. Perez Paina

Manipulacion y comparacion de cadenas

I Archivo de cabecera <string.h>

Algunas funcione son:I char *strcpy(char *dest, const char *src)I char *strncpy(char *dest, const char *src, size t n)I char *strcat(char *dest, const char *src)

I char *strncat(char *dest, const char *src, size t n)I char *strcmp(const char *s1, const char *s2)I char *strncmp(const char *s1, const char *s2, size t n)I size t strlen(const char *s)

Gonzalo Perez Paina Informatica II 6 / 9

Page 44: Gonzalo F. Perez Paina

Manipulacion y comparacion de cadenas

I Archivo de cabecera <string.h>

Algunas funcione son:I char *strcpy(char *dest, const char *src)I char *strncpy(char *dest, const char *src, size t n)I char *strcat(char *dest, const char *src)I char *strncat(char *dest, const char *src, size t n)

I char *strcmp(const char *s1, const char *s2)I char *strncmp(const char *s1, const char *s2, size t n)I size t strlen(const char *s)

Gonzalo Perez Paina Informatica II 6 / 9

Page 45: Gonzalo F. Perez Paina

Manipulacion y comparacion de cadenas

I Archivo de cabecera <string.h>

Algunas funcione son:I char *strcpy(char *dest, const char *src)I char *strncpy(char *dest, const char *src, size t n)I char *strcat(char *dest, const char *src)I char *strncat(char *dest, const char *src, size t n)I char *strcmp(const char *s1, const char *s2)

I char *strncmp(const char *s1, const char *s2, size t n)I size t strlen(const char *s)

Gonzalo Perez Paina Informatica II 6 / 9

Page 46: Gonzalo F. Perez Paina

Manipulacion y comparacion de cadenas

I Archivo de cabecera <string.h>

Algunas funcione son:I char *strcpy(char *dest, const char *src)I char *strncpy(char *dest, const char *src, size t n)I char *strcat(char *dest, const char *src)I char *strncat(char *dest, const char *src, size t n)I char *strcmp(const char *s1, const char *s2)I char *strncmp(const char *s1, const char *s2, size t n)

I size t strlen(const char *s)

Gonzalo Perez Paina Informatica II 6 / 9

Page 47: Gonzalo F. Perez Paina

Manipulacion y comparacion de cadenas

I Archivo de cabecera <string.h>

Algunas funcione son:I char *strcpy(char *dest, const char *src)I char *strncpy(char *dest, const char *src, size t n)I char *strcat(char *dest, const char *src)I char *strncat(char *dest, const char *src, size t n)I char *strcmp(const char *s1, const char *s2)I char *strncmp(const char *s1, const char *s2, size t n)I size t strlen(const char *s)

Gonzalo Perez Paina Informatica II 6 / 9

Page 48: Gonzalo F. Perez Paina
Page 49: Gonzalo F. Perez Paina

Arreglos de punteros – Arreglos de cadenas

I Los arreglos pueden contener punteros

I Uso comun: arreglos de cadenasI Cada entrada del arreglo es una cadenaI Cada entrada es un puntero al primer caracter de la cadena

Ejemplochar *key[4] = {"Top", "Down", "Left", "Right"};

¿Que pasa si se almacenan las cadenas en un arreglo bidimensional?

Gonzalo Perez Paina Informatica II 8 / 9

Page 50: Gonzalo F. Perez Paina

Arreglos de punteros – Arreglos de cadenas

I Los arreglos pueden contener punterosI Uso comun: arreglos de cadenas

I Cada entrada del arreglo es una cadenaI Cada entrada es un puntero al primer caracter de la cadena

Ejemplochar *key[4] = {"Top", "Down", "Left", "Right"};

¿Que pasa si se almacenan las cadenas en un arreglo bidimensional?

Gonzalo Perez Paina Informatica II 8 / 9

Page 51: Gonzalo F. Perez Paina

Arreglos de punteros – Arreglos de cadenas

I Los arreglos pueden contener punterosI Uso comun: arreglos de cadenas

I Cada entrada del arreglo es una cadena

I Cada entrada es un puntero al primer caracter de la cadena

Ejemplochar *key[4] = {"Top", "Down", "Left", "Right"};

¿Que pasa si se almacenan las cadenas en un arreglo bidimensional?

Gonzalo Perez Paina Informatica II 8 / 9

Page 52: Gonzalo F. Perez Paina

Arreglos de punteros – Arreglos de cadenas

I Los arreglos pueden contener punterosI Uso comun: arreglos de cadenas

I Cada entrada del arreglo es una cadenaI Cada entrada es un puntero al primer caracter de la cadena

Ejemplochar *key[4] = {"Top", "Down", "Left", "Right"};

¿Que pasa si se almacenan las cadenas en un arreglo bidimensional?

Gonzalo Perez Paina Informatica II 8 / 9

Page 53: Gonzalo F. Perez Paina

Arreglos de punteros – Arreglos de cadenas

I Los arreglos pueden contener punterosI Uso comun: arreglos de cadenas

I Cada entrada del arreglo es una cadenaI Cada entrada es un puntero al primer caracter de la cadena

Ejemplochar *key[4] = {"Top", "Down", "Left", "Right"};

¿Que pasa si se almacenan las cadenas en un arreglo bidimensional?

Gonzalo Perez Paina Informatica II 8 / 9

Page 54: Gonzalo F. Perez Paina

Arreglos de punteros – Arreglos de cadenas

I Los arreglos pueden contener punterosI Uso comun: arreglos de cadenas

I Cada entrada del arreglo es una cadenaI Cada entrada es un puntero al primer caracter de la cadena

Ejemplochar *key[4] = {"Top", "Down", "Left", "Right"};

¿Que pasa si se almacenan las cadenas en un arreglo bidimensional?

Gonzalo Perez Paina Informatica II 8 / 9

Page 55: Gonzalo F. Perez Paina

Ejemplo – Argumentos a la funcion main

int main(void){/* Programa */. . .return 0;

}

int main(int argc, char *argv[]){/* Programa */. . .return 0;

}

I argc: cantidad de argumentos en la lınea de comandos al ejecutar elprograma

I argv: puntero a un vector de cadenas que contiene los argumentos(argv[argc] es un puntero NULL)

Gonzalo Perez Paina Informatica II 9 / 9

Page 56: Gonzalo F. Perez Paina

Ejemplo – Argumentos a la funcion main

int main(void){/* Programa */. . .return 0;

}

int main(int argc, char *argv[]){/* Programa */. . .return 0;

}

I argc: cantidad de argumentos en la lınea de comandos al ejecutar elprograma

I argv: puntero a un vector de cadenas que contiene los argumentos(argv[argc] es un puntero NULL)

Gonzalo Perez Paina Informatica II 9 / 9

Page 57: Gonzalo F. Perez Paina

Ejemplo – Argumentos a la funcion main

int main(void){/* Programa */. . .return 0;

}

int main(int argc, char *argv[]){/* Programa */. . .return 0;

}

I argc: cantidad de argumentos en la lınea de comandos al ejecutar elprograma

I argv: puntero a un vector de cadenas que contiene los argumentos(argv[argc] es un puntero NULL)

Gonzalo Perez Paina Informatica II 9 / 9

Page 58: Gonzalo F. Perez Paina