Lenguajes de programación LPSI EUI UPM CADENAS DE CARACTERES

Documentos relacionados
Cadenas de caracteres. 1. Definición 2. Funciones para manejo de cadenas

Cadena de caracteres. 1. Fundamentos de cadenas y caracteres

17. Manejo de cadenas <string.h>

Algoritmos y estructuras de datos

Tema 11: Manejo de cadenas en C

Tipos de Datos en C. Palabras reservadas en C

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Caracteres y Cadenas. Funcionamiento y algunas funciones para su manipulación

TEMA 4 ALGUNAS FUNCIONES DEL LENGUAJE C

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

Cadenas de Caracteres

Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.

Analista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior STRINGS

Informática Ingeniería en Electrónica y Automática Industrial

CAPITULO 4: ENTRADA Y SALIDA DE DATOS.

Operaciones de E/S en ANSI C

Fundamentos de Informática

Formato para prácticas de laboratorio

INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C

Estructuras de datos: vectores en C. Clase 7 y 8 Introducción a la Computación Patricia Borensztejn

Capítulo 11 INTRODUCCIÓN A LA CODIFICACIÓN EN C. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

INDICE Capitulo 1. El Turbo C++ y el Lenguaje C Capitulo 2. Declaración e inicialización de variables Capitulo 3. Funciones de entrada y salida

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 3

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

1.1. Gramática Léxica

Índice. Estructuras de datos en Memoria Principal: Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa:

EJERCICIOS. Algo de C CADENAS

Para C un chero no es más que una porción de almacenamiento

Septiembre de Steven R. Davidson y Salvador Pozo Con Clase:

Sintaxis de los aspectos generales de un lenguaje de programación

Tema 3 Constantes, Variables y Tipos

Arrays, Matrices y Cadenas

LENGUAJE. Tema 4 Vectores, Matrices y Cadenas de caracteres.

El lenguaje C. if (a>3) { printf("hola"); // bloque printf("%d",a); // de getch(); //código } Partes de un programa en C.

FUNDAMENTOS DE INFORMÁTICA 1º Ingeniería Industrial

Son los nombres usados para referirse a las variables, funciones, etiquetas y otros objetos definidos por el usuario.

LENGUAJES DE PROGRAMACIÓN I Lenguaje C

Tema 5. Entrada y Salida

Algoritmos y Programación I

Introducción a Lenguaje C. Jornadas de Octubre 2009 Grupo de Usuarios de Linux Universidad Carlos III Tania Pérez

1. Lenguajes de programación. 2. Compilador. 3. Mi primer programa. EDM. Introducción al lenguaje C _ 1

Tema 2: La clase string. Índice. Notas. Programación 2. Curso Notas. Definición Declaración Entrada / salida Métodos Operaciones

Informática Ingeniería en Electrónica y Automática Industrial

Prof. Dr. Oscar Bruno SSL CLASE 2

Concepto Concept s Los L nom res re d e e los h c eros: exter te n r os o o fí s fí ico nom re ú nico i del del ar chiv chiv o o o ficher ficher en

Formatos para prácticas de laboratorio

Funciones. Ejercicios Resueltos Ejercicios Propuestos

UNIDAD IV ESTRUCTURA DE DATOS ESTÁTICAS MATRICES

Tipos de Datos Estructurados

Punteros, Arreglos y Cadenas en C

Informática I (2014-2) Taller Lenguaje C Prof. Sebastián Isaza Departamento de Ingeniería Electrónica Facultad de Ingeniería Universidad de Antioquia

Programación 1 Grado de Ingeniería Robótica

Estructuras de Datos Estáticas. Diseñar y programar en lenguaje C soluciones utilizando estructuras de datos estáticas

Datos y tipos de datos

Nota: Los siguientes ejercicios se refieren a programas ANSI-C no modularizados (autocontenidos dentro de la función main() ).

Programación I Teoría : Entrada/Salida - Archivos.

Informática Aplicada I

Laboratorio de Arquitectura de Redes. Entrada y salida por archivos en lenguaje C

OPERACIONES SOBRE LENGUAJES REGULARES LA UNIÓN DE LENGUAJES REGULARES

Guía básica de programación en C++ estructurado. Manejo básico de la parte estructurada de C++

Tipos de Datos. Tipos de Datos Simples Estándar

Funciones de C estándar clasificadas por ficheros de cabecera.

Max-1

LENGUAJE. Tema 3 Elementos de un programa II

Departamento de Electrónica

5) Escribir un fragmento de código que inicialice un arreglo de caracteres con una cadena cualquiera y la imprima por stdout.

Puede extraer subcadenas y concatenar cadenas de la siguiente manera: string s1 = "orange"; string s2 = "red";

EJERCICIOS DE PROGRAMACIÓN EN C. DIBUJAR UN ROMBO O DIAMANTE. CALCULAR SUMATORIOS. (CU00542F)

Introducción a Sistemas Operativos: Ficheros

Unidad 3. Estructuras simples de datos. Tema 1. Cadenas de caracteres

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Entrada/Salida. Entrada/Salida. Flujos de texto. Flujos de datos. Flujos binarios. Flujos estándares ANSI

Entrada y Salida de Datos. Lectura de archivos.

Tema 07: Tipos de datos en C & entrada y salida estándar

Tema 3: Entrada/Salida de Ficheros

Prof. Dr. Paul Bustamante

Capítulo 9. Lectura y escritura de ficheros

Bloque 9. Ficheros de texto

Tema 7 Vectores y cadenas de caracteres. Fundamentos de Informática

Tema 3. Estructuras de control

Tema 2: La clase string

Tema 4 Operadores y Expresiones. Fundamentos de Informática

Tema 3. Entrada y Salida

Tema 13: Manejo de archivos en lenguaje C

Soluciones a los Ejercicios Propuestos en el libro: EMPEZAR DE CERO A PROGRAMAR EN lenguaje C. Autor: Carlos Javier Pes Rivas

Tipos de variables. Lenguaje C. Departamento de Electrónica. Tipos de datos, variables y constantes. Fundación San Valero

Objetivos. El alumno conocerá y aplicará el concepto de archivo para el almacenamiento y recuperación de datos persistentes.

1000+(4/100)*1000 =1000 * (1+4/100) =1000 * 1.04 = Al finalizar el segundo año, el 4% se aplica sobre los 1040, y obtenemos:

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

TIPOS DE DATOS BASICOS EN LENGUAJE C

Programación I. Práctica parcial: el juego de los barquitos (ENTREGA OBLIGATORIA)

Cursosindustriales. Curso de C / C++ Por Deimos_hack

Unidad 5: Estructuras de Datos Estáticas II Unidad 5 ESTRUCTURAS ESTATICAS II ( Tablas y Registros) Desarrollo de la unidad: 36 h

APELLIDOS NOMBRE GRUPO CALIFICACIÓN FECHA

El lenguaje C. 3. Una instrucción que se ejecutará si la condición es verdadera.

MIS. Lizbeth Alejandra Hernández González

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8

Transcripción:

CADENAS DE CARACTERES

Arrays unidimensionales de caracteres \0 es el carácter nulo Toda cadena debe acabar en \0 Lo que hay después de \0 en el array no se considera parte de la cadena Las cadenas constantes van entre Venga ya! V e n g a y a! \0

char nombre [25] = { B, u, z, z,, L, i, g, h, t, y, e, a, r, \0 }; char edif [ ] = casamata ; char no_se [15] =, desc[20] = subproducto ; char trampa [12] = vacío ; char *color = amarillo ;

char titulo [40] = Una notte a Napoli ; char c = Ñ, *p = titulo; char *grupo = Pink Martini titulo[1] = c; *(p+1) = n ; grupo [6] = T ; grupo = &c; *grupo = x ; ERROR!

main () { char cadena [15] = Trabuco, *p = cadena; for (; *p; p++) printf ( %s, p); }

main () { char semana [7][[10] = { lunes, martes, miércoles, jueves, viernes, sábado, domingo }, dia, *p; } for (dia = 0; dia < 7; dia++) { printf ( %s\n, semana[dia]); p = semana + dia; printf ( %s\n, p);

MANEJO DE MEMORIA string.h void * memcpy (void *s1, const void *s2, unsigned n) Copia n bytes de s2 en s1 Devuelve s1 void * memmove (void *s1, const void *s2, unsigned n) Copia n bytes desde s2 a s1 Devuelve s1 Usa una zona auxiliar para la copia

MANEJO DE MEMORIA string.h int memcmp (const void *s1, const void *s2, unsigned n) Compara los n primeros caracteres de s1 y s2 Devuelve: 0 si son iguales <0 si s1 es menor que s2 >0 si s1 es mayor que s2

MANEJO DE MEMORIA string.h void * memchr (const void *s1, int c, unsigned n) Localiza la primera aparición del carácter c (convertido a unsigned char) entre los primeros n caracteres de s1 Devuelve la dirección de s1 en la que está el carácter o NULL si no está void * memset (void *s1, int c, unsigned n) Copia el carácter c (convertido a unsigned char) en los n primeros caracteres de s1 Devuelve s1

MANEJO DE CADENAS string.h char * strcpy (char *s1, const char *s2) Copia s2 en s1 Devuelve s1 char * strncpy (char *s1, const char *s2, unsigned n) Copia n caracteres de s2 en s1 Devuelve s1

MANEJO DE CADENAS string.h char * strcat (char *s1, const char *s2) Concatena s2 al final de s1 El primer carácter de s2 se superpone al \0 de s1 Devuelve s1

MANEJO DE CADENAS string.h char * strncat (char *s1, const char *s2) Concatena n caracteres de s2 al final de s1 El primer carácter de s2 se superpone al \0 de s1 Devuelve s1

MANEJO DE CADENAS string.h int strcmp (const char *s1, const char *s2) Compara la cadena s1 con s2 Devuelve 0 si son iguales <0 si s1 es menor que s2 >0 si s1 es mayor que s2

MANEJO DE CADENAS string.h int strncmp (const char *s1, const char *s2, unsigned n) Compara un máximo de n caracteres de s1 y s2. Para si encuentra \0 antes de los n caracteres o si se puede determinar el resultado Devuelve 0 si son iguales <0 si s1 es menor que s2 >0 si s1 es mayor que s2

MANEJO DE CADENAS string.h char *strchr (const char *s1, int c) Localiza la primera instancia del carácter c en s1 Devuelve un puntero a c o NULL si no lo encuentra

MANEJO DE CADENAS string.h unsigned strlen (const char *s1) * Devuelve la longitud de la cadena s1, sin contar el \0

MANEJO DE CADENAS string.h char *strstr (const char *s1, const char *s2) Localiza la primera aparición de la cadena s2 en la cadena s1 Devuelve la dirección de la cadena en s1 o NULL si no la encuentra char *strpbrk (const char *s1, const char *s2) Localiza el primer carácter de s2 que esté en s1 Devuelve la dirección en s1 del carácter encontrado o NULL si no encuentra ninguno

MANEJO DE CADENAS string.h unsigned strspn (const char *s1, const char *s2) Devuelve la longitud máxima de la subcadena inicial de s1 formada sólo por caracteres contenidos en s2 unsigned strcspn (const char *s1, const char *s2) Devuelve la longitud máxima de la subcadena inicial de s1 formada sólo por caracteres que no están contenidos en s2 char *strrchr (const char *s1, int c) Localiza la última instancia del carácter c en s1 Devuelve un puntero a c o NULL si no lo encuentra

CONVERSIÓN DE CADENAS stdlib.h double atof (const char *s1) Convierte la cadena s1 a double int atoi (const char *s1) Convierte la cadena s1 a int long atol (const char *s1) Convierte la cadena s1 a long char *itoa (int n, char *s1, unsigned b) Convierte el entero n en una cadena de caracteres, que la almacena en s1, en base b. La base tiene que estar en el rango 2..36 Devuelve s1

MANEJO DE CARACTERES ctype.h int isdigit (int c) Devuelve verdadero si c es un dígito y 0 en caso contrario int isalpha (int c) Devuelve verdadero si c es una letra y 0 en caso contrario int isalnum(int c) Devuelve verdadero si c es un dígito o una letra, y 0 en caso contrario int islower(int c) Devuelve verdadero si c es una letra minúscula y 0 en caso contrario

MANEJO DE CARACTERES ctype.h int isupper (int c) Devuelve verdadero si c es una letra mayúscula y 0 en caso contrario int isspace (int c) Devuelve verdadero si c es un carácter de espaciado (salto de línea \n, espacio en blanco, línea siguiente \f, retorno de carro \r, tabulador horizontal \t o tabulador vertical \v ) y 0 en caso contrario int tolower (int c) Si c es una letra mayúscula la convierte a minúscula, si no la devuelve sin modificar

MANEJO DE CARACTERES ctype.h int toupper (int c) Si c es una letra minúscula la convierte a mayúscula, si no la devuelve sin modificar int iscntrl (int c) Devuelve verdadero si c es un carácter de control y 0 en caso contrario int ispunct (int c) Devuelve verdadero si c es un carácter imprimible distinto a letra, dígito o espacio en blanco, y 0 en caso contrario

MANEJO DE CARACTERES ctype.h int isprint (int c) Devuelve verdadero si c es un carácter imprimible y 0 en caso contrario int isupper (int c) Devuelve verdadero si c es un carácter imprimible distinto del espacio en blanco, y 0 en caso contrario

BIBLIOTECA ESTÁNDAR DE ENTRADA/SALIDA stdio.h int getchar (void) Devuelve el siguiente carácter de la entrada estándar (teclado normalmente). Lo recoge después de pulsar intro. Si hay un error de lectura devuelve EOF (-1) char *gets (char s1) Lee caracteres de la entrada estándar hasta encontrar un salto de línea o el fin de fichero, que no los incluye, y los almacena en la cadena s1. Añade \0 al final. Devuelve s1 si no hay error en la lectura y NULL en caso contrario fflush (stdin) limpia el buffer de teclado

BIBLIOTECA ESTÁNDAR DE ENTRADA/SALIDA stdio.h int putchar (int c) Imprime el carácter c en la salida estándar (pantalla normalmente) int puts (const char * s1) Imprime la cadena de caracteres s1 en la salida estándar seguida de un salto de línea. Si tiene éxito devuelve un \n y EOF en caso contrario int sprintf (char *s1, const char * formato, ) * Igual que printf pero deja la salida en la cadena s1 int scanf (char *s1, const char * formato, ) * Igual que scanf pero lee los datos de entrada de la cadena s1 en vez de leerlos de teclado

ENTRADA/SALIDA DE CONSOLA conio.h (no compatible con windows) void clrscr(void) Borra la pantalla y sitúa el cursor en la esquina superior izda int getch (void) Devuelve el carácter leído de teclado sin esperar a que se pulse intro. No hace eco en la pantalla int getche (void) Devuelve el carácter leído de teclado sin esperar a que se pulse intro. Hace eco en la pantalla int putch (int c) Imprime el carácter c en la pantalla. Devuelve el carácter impreso o EOF en caso de error

EJERCICIOS Implementar todas las funciones explicadas en el tema, que no pertenezcan a stdio.h o conio.h, y que no se hayan implementado como ejemplo. Implementar una función que reciba como parámetro una cadena de caracteres y la devuelva invertida

Escribir una función que reciba como parámetros dos matrículas de coche distintas con formato E-DDDD-LLL y devuelva la más antigua. Escribir una función que lea un nombre y unos apellidos y los devuelva, en mayúsculas y encriptados, en una cadena de caracteres, de longitud máxima 50. Para encriptar, se sumará 3 al código ascii de las vocales y 7 al de cualquier otra letra o símbolo que aparezca en el nombre o apellidos. Lenguajes de programación LPSI EUI UPM

Escribir una función que recibiendo como parámetros un array de punteros a cadenas de caracteres y un número entero mayor o igual que 2, ordene el array alfabéticamente y devuelva un código de ejecución que será 0 si todo ha ido bien ó 1 en caso de error. Lenguajes de programación LPSI EUI UPM