Publicado el 18 de Julio del 2020
816 visualizaciones desde el 18 de Julio del 2020
144,5 KB
18 paginas
Creado hace 16a (09/02/2009)
Funciones intrínsecas de C
CAPÍTULO 4
FUNCIONES INTRÍNSECAS DE C
Gran parte de las funciones intrínsecas de C que se estudiarán en este
capítulo son aplicables a cadenas de caracteres. Las cadenas se han analizado con
profundidad en las secciones anteriores pero se ofrece a continuación un resumen
que permite asentar los conceptos más importantes.
4.1 Cadenas de caracteres
El lenguaje C no tiene datos predefinidos del tipo cadena de caracteres
(string). Una cadena de caracteres es un tipo de dato compuesto por un vector de
elementos de tipo carácter (char) y terminado por un carácter nulo (‘\0’).
Ejemplo de cadena: La cadena de test\0
Declaración de variables cadena: se declaran como un vector de tipo char.
Ejemplo: char texto[81];
char orden[40];
Funciones intrínsecas de C
Inicialización: se realiza en la sentencia de declaración utilizando doble apóstrofo a
los lados. El programador no debe añadir el carácter ‘\0’ ya que lo hace el propio
programa.
Ejemplo: char texto[81]=”Esto es una cadena”;
char orden[40]=”Esto es una cadena muy larga”;
Así, el siguiente programa muestra que el carácter nulo se añade a la cadena:
#include<stdio.h>
void main ( )
{
int i;
char s[ ]="ABCD";
for(i=0;i<5;i++)
printf("s[%d]=%c,codigo %d \n",i,s[i],s[i]);
}
La salida a pantalla es:
s[0]=A,codigo 65
s[1]=B,codigo 66
s[2]=C,codigo 67
s[3]=D,codigo 68
s[4]= ,codigo 0
4.2 Funciones para la manipulación de cadenas de caracteres. Las librerías
string.h y stdlib.h
Algunas de estas funciones ya han sido empleadas en capítulos anteriores,
aunque en esta sección se aporta una definición más estricta y se explica el valor que
devuelven, cuando ese dato se considere importante.
intrínsecas, en este apartado y en los posteriores, es la indicada a continuación:
La nomenclatura que se utiliza para la definición de las funciones
tipo nombre(tipo_1 arg_1, tipo_2 arg_2, ...)
Funciones intrínsecas de C
donde:
tipo: es el tipo de datos del valor devuelto por la función
nombre: es el nombre de la función
tipo_1: es el tipo de datos del primer argumento de la función
arg_1: es el nombre del primer argumento de la función
tipo_2: es el tipo de datos del segundo argumento de la función
arg_2: es el nombre del segundo argumento de la función
como sus datos de entrada. Se profundizará en esta cuestión en el capítulo 7.
del programa, de la forma:
Los argumentos o parámetros de una función se considerarán, a este nivel,
La llamada a la función intrínseca se realiza en cualquier parte del código
nombre( arg_1, arg_2, ...)
insertándose en ese lugar el valor devuelto por la función.
4.2.1 Escritura de cadenas
Para escribir una cadena se utiliza la función puts ( ) cuya especificación es:
int puts(char *cad)
puts( ) recibe como parámetro una cadena (en realidad una cadena es una
constante puntero de tipo char, de ahí la definición char * cad, aunque es un
concepto que no se entenderá hasta que se analice el capítulo 6) y devuelve un
entero. Añade al final de la cadena un carácter de salto de línea. Devuelve un
número positivo o cero si todo va bien y un –1 si hay algún error.
Funciones intrínsecas de C
Ejemplo: el programa
#include<stdio.h>
void main( )
{
char texto[81]=”Esto es una cadena”;
puts(texto);
}
produce la siguiente salida por pantalla: Esto es una cadena.
De la misma forma se puede utilizar la función printf( ),
int printf(char *cad)
Ambas, son funciones de la librería stdio.h
4.2.2 Lectura de cadenas
Método 1: usando la función scanf( ), que sólo lee datos delimitados por
blancos.
int scanf(char *cadena de control, char *cadena)
Esta función recibe, al menos, dos parámetros de cadena (punteros) y devuelve un
entero.
Ejemplo:
#include <stdio.h>
void main ( )
{
char nombre[30];
puts(nombre) ;
}
scanf( ″%s ″ , nombre) ;
Funciones intrínsecas de C
En este caso, si se teclea como dato Pedro imprime como salida Pedro,
pero si se teclea Pedro López la salida es también Pedro.
Método 2: para evitar la lectura fraccionada se utiliza la función gets( ).
char *gets (char *cad)
Esta función recibe como parámetro un puntero y devuelve un puntero.
Ejemplo:
#include<stdio.h>
void main( )
{
char nombre[30];
gets(nombre) ;
puts(nombre) ;
}
Si se teclea como dato Pedro Sanz el programa ofrece como salida Pedro Sanz.
Método 3: el siguiente método consiste en leer carácter a carácter. Para ello se
utiliza la función getchar( ). Su especificación es:
int getchar(void)
Esta función devuelve el carácter leído y no tiene argumento de entrada.
Para escribir un carácter se utiliza la función putchar( ) cuya especificación es:
int putchar(int ch)
Esta función recibe como argumento el carácter a escribir y devuelve un entero.
Funciones intrínsecas de C
Ejemplo 1: car= getchar( ); equivale a scanf(“%c”,&car);
Ejemplo 2: putchar(car); equivale a printf(“%c”,car);
Ejemplo 3:
#include<stdio.h>
void main( )
{
char nombre[30];
int i=0 ;
while((nombre[i]=getchar( )) != ‘\n’) i=i+1;
nombre[i]=0;
puts(nombre);
}
Si se teclea cantares da como resultado cantares. En la séptima sentencia se
podría haber escrito: nombre[i]=’\0’;
Todas las funciones anteriores están incorporadas a la librería stdio.h
4.2.3 La libreria string.h
La biblioteca estándar de C contiene la biblioteca de funciones para
tratamiento de cadenas llamada string.h que incorpora las funciones de
manipulación de cadenas utilizadas más frecuentemente.
strlen( ): devuelve el número de caracteres de una cadena (longitud real de la
cadena hasta la posición anterior al carácter nulo).
Su especificación es:
Algunas de la funciones más usuales son:
int strlen(char *cad)
Funciones intrínsecas de C
Recibe como argumento un puntero (cadena) y devuelve un entero.
Ejemplo:
#include<stdio.h>
#include<string.h>
#define MAX 80
void main( )
{
char cad[MAX];
int numcar;
puts (“Dame una cadena”);
gets(cad);
numcar=strlen(cad);
printf(“La cadena tiene %d caracteres \n”,numcar);
}
Por ejemplo si se teclea COSACOS CANSADOS el programa imprime como
salida 16.
strcat( ): su finalidad es concatenar dos cadenas de caracteres.
char * strcat (char*cad1,char*cad2)
Esta función añade la cadena cad2 al final de la cadena cad1 (a continuación del
carácter previo al nulo de cad1).
Ejemplo:
#include<stdio.h>
#include<string.h>
main( )
{
char cad1[25]=”El lenguaje C”;
char cad2[12]=”es potente”;
printf(“%s \n”,strcat(cad1,cad2));
}
Funciones intrínsecas de C
Este programa imprime la siguiente salida: El lenguaje Ces potente
strcpy( ): esta función copia en cad1 el contenido de cad2 y devuelve cad1.
char * strcpy (char*cad1,char*cad2)
Ejemplo:
#include <stdio.h>
#include<string.h>
void main( )
{
char cad1[13]=”Lenguaje C”;
char cad2[13]=”Lenguaje ADA”
printf(“%s \n”,strcpy(cad1,cad2));
Comentarios de: Funciones intrínsecas de C - Capítulo 4 (0)
No hay comentarios