PDF de programación - Anexo I - Funciones para manipular cadenas de caracteres en C - Estructuras de Datos y Algoritmos

Imágen de pdf Anexo I - Funciones para manipular cadenas de caracteres en C - Estructuras de Datos y Algoritmos

Anexo I - Funciones para manipular cadenas de caracteres en C - Estructuras de Datos y Algoritmosgráfica de visualizaciones

Publicado el 17 de Diciembre del 2018
635 visualizaciones desde el 17 de Diciembre del 2018
173,1 KB
19 paginas
Creado hace 8a (10/02/2016)
Estructuras de Datos

y Algoritmos

Anexo I

Funciones para manipular cadenas de

caracteres en C

Prof. Dr. P. Javier Herrera

Contenido

1
2
3
4
5
6
7
8
9

Lectura de cadena
La biblioteca string.h
Uso del modificador const con cadenas
Asignación de cadenas
Longitud y concatenación de cadenas
Comparación de cadenas
Conversión de cadenas a números
Búsqueda de caracteres y cadenas
Ejercicio

Anexo I

2

1.

Lectura de cadenas

Función getch()


Esta función lee un carácter tecleado sin esperar el retorno de carro. El carácter tecleado no
se visualiza en pantalla. Esta función cuya definición se encuentra en conio.h, tiene como
prototipo:

int getch(void);

Función getchar()


La función getchar() se utiliza para leer carácter a carácter. La llamada a getchar()
devuelve el carácter siguiente del flujo de entrada stdin. En caso de error, o de encontrar el
fin de archivo, devuelve EOF (macro definida en stdio.h).

Anexo I

3
3

1.

Lectura de cadenas

Función putchar()


Es la función opuesta de getchar(). La función putchar() se utiliza para escribir en la
salida (stdout) carácter a carácter. El carácter que se escribe es el transmitido como
argumento. Esta función (realmente es una macro definida en stdio.h) tiene como
prototipo:

int putchar(int ch);

Función puts()


Visualza una cadena caracteres, incluyendo el carácter fin de línea. Es la función recíproca de
gets(); si gets() capta una cadena hasta fin de línea, puts() escribe una cadena y el
fin de línea. El prototipo de la función se encuentra en stdio.h:

int puts(const char *s);

Anexo I

4
4

2.

La biblioteca string.h









La biblioteca estándar de C contiene la biblioteca de cadena string.h, que incorpora las
funciones de manipulación de cadenas utilizadas más frecuentemente.

El archivo de cabecera stdio.h también soporta E/S de cadenas.

Las funciones de cadena tienen argumentos declarados de forma similar a:

char *s;

o bien,

const char *s;

Esto significa que la función espera una cadena que puede o no modificarse. Cuando se
utiliza la función, se puede usar un puntero a char o se puede especificar el nombre de una
variable array char.

Cuando se pasa un array a una función, C pasa automáticamente la dirección del array char.

Anexo I

5
5

3.

Uso del modificador const con cadenas





Las funciones de cadena declaradas en <string.h> , incluyen la palabra reservada
const.

Generalmente los argumentos puntero a char precedidos de const son de entrada, en
caso contrario de salida. Por ejemplo,

char *strcpy(char *destino, const char *fuente);

el segundo parámetro fuente de la función strcpy representa el área fuente; se utiliza sólo
para copiar caracteres de ella, de modo que este área no se modificará. La palabra reservada
const se utiliza para esta tarea. Se considera un parámetro de entrada, ya que la función
recibe datos a través de ella. En cambio, el primer parámetro destino de strcpy es el área
de destino, la cual se sobrescribirá y, por consiguiente, no se debe utilizar const para ello.
En este caso, el parámetro correspondiente se denomina parámetro de salida, ya que los
datos se escriben en el área de destino.

Anexo I

6
6

4.

Asignación de cadenas

Función strncpy()





El prototipo de la función strncpy es,

char* strncpy(char* destino, const char* fuente, size-t num);

y su propósito es copiar num caracteres de la cadena fuente a la cadena destino. La función
realiza truncamiento o rellenado de caracteres si es necesario.

Ejemplo:

char cad1[] = "Pepe";
char cad2[] = "Hola Mundo";
strncpy(cad1, cad2, 4); /* La variable cad1 contiene ahora la cadena "Hola"*/

Anexo I

7
7

5.

Longitud y concatenación de cadenas

• Muchas operaciones de cadena requieren conocer el número de caracteres de una cadena

(longitud), así como la unión (concatenación) de cadenas.

Función strlen()







Calcula el número de caracteres del parámetro cadena, excluyendo el carácter nulo de
terminación de la cadena.

El prototipo de la función es:

size-t strlen(const char* cadena)

El tipo de resultado size-t representa un tipo entero general.

Anexo I

8
8

5.

Longitud y concatenación de cadenas



En muchas ocasiones se necesita construir una cadena, añadiendo una cadena a otra cadena,
operación que se conoce como concatenación. Las funciones strcat() y strncat()
realizan operaciones de concatenación.

Función strcat()


Añade el contenido de la cadena fuente a la cadena destino, devolviendo un puntero a la
cadena destino. Su prototipo es:

char* strcat (char* destino, const char* fuente);

Función strncat()


Añade num caracteres de la cadena fuente a la cadena destino y devuelve el puntero a la
cadena destino. Su prototipo es:

char* strncat(char* destino, const char* fuente, size-t num)

OJO: Ni la función strcat ni strncat comprueban que la cadena destino tenga suficiente

espacio para la cadena resultante.

Anexo I

9
9

6.

Comparación de cadenas



Dado que las cadenas son arrays de caracteres, la biblioteca string.h proporciona un
conjunto de funciones que comparan cadenas. Estas funciones comparan los caracteres de
dos cadenas utilizando el valor ASCII de cada carácter. Las funciones son strcmp() y
strncmp().

Función strcmp()


Determina si una cadena es igual a otra, mayor o menor que otra. Los términos «mayor que»
y «menor que» se refieren a la ordenación alfabética de las cadenas. Por ejemplo, Alicante es
menor que Sevilla. La letra A es menor que la letra a, la letra Z es menor que la letra a.
El prototipo de la función strcmp() es:

int strcmp(const char* cad1, const char* cad2);

La función compara las cadenas cad1 y cad2. El resultado entero es:





< 0 si
= 0 si
> 0 si

cad1
cad1
cad1

es menor que
es igual a
es mayor que

cad2
cad2
cad2

Anexo I

10
10

6.

Comparación de cadenas



La comparación se realiza examinando los primeros caracteres de cad1 y cad2; a
continuación los siguientes caracteres y así sucesivamente. Este proceso termina cuando:
– se encuentran dos caracteres distintos del mismo orden: cad1[i] y cad2[i];
– se encuentra el carácter nulo en cad1[i] o cad2[i];

Función strncmp()


La función strncmp() compara los num caracteres más a la izquierda de las dos cadenas
cad1 y cad2. El prototipo es,

int strncmp(const char* cad1, const char* cad2, size-t num);

y el resultado de la comparación será (considerando los num primeros caracteres):

< 0 si
= 0 si
> 0 si

cad1
cad1
cad1

es menor que
es igual a
es mayor que

cad2
cad2
cad2

Anexo I

11
11

7.

Conversión de cadenas a números



Es muy frecuente tener que convertir números almacenados en cadenas de caracteres a tipos
de datos numéricos. C proporciona las funciones atoi(), atof() y atol(), que realizan
estas conversiones. Estas tres funciones se incluyen en la biblioteca stdlib.h.

Función atoi()


Convierte una cadena a un valor entero. Su prototipo es:





int atoi(const char *cad);

Convierte la cadena apuntada por cad a un valor entero. La cadena debe tener la
representación de un valor entero y el formato siguiente:
[espacio en blanco] [signo] [ddd]

donde,

[espacio en blanco] = cadena opcional de tabulaciones y espacios
[signo] = un signo opcional para el valor
[ddd] = la cadena de dígitos

Si la cadena no se puede convertir, atoi() devuelve cero.

Anexo I

12
12

7.

Conversión de cadenas a números

Función atof()


Convierte una cadena a un valor de coma flotante. Su prototipo es:



double atof(const char *cad);

atof() convierte la cadena apuntada por cad a un valor double en coma flotante. La
cadena de caracteres debe tener una representación de caracteres de un número de coma
flotante. La conversión termina cuando se encuentre un carácter no reconocido. Su formato
es:

[espacio_en_blanco] [signo] [ddd] [.] [ddd] [e/E] [signo] [ddd]

Función atol()


Convierte una cadena a un valor largo (long). Su prototipo es:

long atol(const char *cad);



La cadena a convertir debe tener un formato de valor entero largo:

[espacio_en_blanco] [signo] [ddd]

Anexo I

13
13

7.

Conversión de cadenas a números

Entrada de números y cadenas







Un programa puede necesitar una entrada que consista en un valor numérico y a
continuación una cadena de caracteres.

La entrada del valor numérico se puede hacer con scanf().

La entrada de la cadena con gets().

Anexo I

14
14

8.

Búsqueda de caracteres y cadenas







La biblioteca string.h contiene un número de funciones que permiten localizar caracteres
en cadenas y subcadenas en cadenas.
Funciones de búsqueda de caracteres: strchr strrchr strspn

Funciones de búsqueda de cadenas:

strcspn strpbrk
strstr strtok

Función strchr()


El prototipo de la función es:



char *strchr(const char *s, int c);

Permite buscar caracteres y patrones de caracteres en cadenas; localiza la primera ocurrencia
de un carácter c en una cadena s. La búsqueda termina en la primera ocurrencia de un
carácter coincidente.

Anexo I

15
15

8.

Búsqueda de caracteres y cadenas

Función strrchr()


Localiza la última ocurrencia del patrón c en la cadena s. La búsqueda se realiza en sentido
inverso, desde el último carácter de la cadena al primero; termina con la primera ocurrencia
de un carácter coincidente. Si no se encuentra el carácter c en la cadena s, la función
produce un resultado NULL. Su prototipo es:

char *strrchr(const char *s, int c);

Función strspn()


Devuelve la longitud de la mayor subcadena s1 formada sólo por caracteres de la cadena
patrón s2. El prototipo es:

size-t strspn(const char *s1, const char *s2);

Función strcspn()


Encuentra el índice del primer carácter de la primera cadena s1 que está en el conjunto de
caracteres especificado en la segunda cadena s2. El prototipo es:

size-t strcspn (const char *s1, const char *s2);

Anexo I

16
16

8.

Búsqueda de caracteres y cadenas

Función strpbrk()


Recorre una cadena buscando caracteres pertenecientes a un conjunto de carac
  • Links de descarga
http://lwp-l.com/pdf14573

Comentarios de: Anexo I - Funciones para manipular cadenas de caracteres en C - Estructuras de Datos y Algoritmos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad