SlideShare une entreprise Scribd logo
1  sur  59
Télécharger pour lire hors ligne
Cadenas y funciones de
cadena
Parte 1
Clase 10
Cadenas y funciones de cadena
• C++ ( y su lenguaje padre, C) no tiene datos predefinidos tipo
cadena (string). En su lugar, C++, como C, manipula cadenas
mediante arrays de caracteres que terminan con el carácter nulo
ASCII (‘ 0’).
• Una cadena se considera como un array unidimensional de tipo
char o unsigned char.
Cadenas y funciones de cadena
L a c a d e n a d e t e s t
L a c a d e n a d e t e s t 0
a)
b)
b) Cadena caracteres
a) Array de caracteres
Concepto de Cadena
• Una cadena es un tipo dato compuesto, un array de caracteres
(char), terminado por un carácter nulo (‘ /0’).
• Una cadena (también llamada constante de cadena o literal de
cadena) es “ABC”. Cuando la cadena aparece dentro de un
programa se verá como si se almacenaran cuatro elementos: ‘A’,
‘B’, ‘C’ y ‘0’.
Concepto de Cadena
• En consecuencia, se considera que la cadena “ABC” es un array
de cuatro elementos de tipo char.
• El valor real de esta cadena es la dirección de su primer carácter y
su tipo es un puntero char. Aplicando el operador * a un objeto de
tipo se obtiene el carácter que forma su contenido; es posible
también utilizar aritmética de direcciones con cadenas:
Concepto de Cadena
*”ABC” Es igual a ‘A’
*(“ABC” +1) Es igual a ‘B’
*(“ABC” +2) Es igual a ‘C’
*(“ABC” +3) Es igual a ‘0’
Concepto de Cadena
• De igual forma, utilizando el subíndice del array se puede escribir:
“ABC” [0] Es igual a ‘A’
“ABC” [1] Es igual a ‘B’
“ABC” [2] Es igual a ‘C’
“ABC” [3] Es igual a ‘0’
Declaración de variables de cadena
• Las cadenas se declaran como los restantes tipos de arrays. El
operador postfijo [ ] contiene el tamaño máximo del objeto. El
tipo base, naturalmente, es char, o bien unsigned char.
Declaración de variables de cadena
Declaración de variables de cadena
• El tipo unsigned char puede ser de interés en aquellos casos
en que los caracteres especiales presentes puedan tener el
bit de orden alto activado. Si el carácter se considera con
signo, el bit de mayor peso (orden alto) se interpreta como
bit de signo y se puede propagar a la posición de mayor
orden (peso) de nuevo tipo.
Declaración de variables de cadena
• Observe que el tamaño de la cadena ha de incluir el
carácter ‘0’. En consecuencia, para definir un array de
caracteres que contenga la cadena “ABC-DEF”, escriba:
Inicialización de variables de cadena
• Todos los tipos de arrays requieren una inicialización que
consiste en una lista de valores separados por comas y
encerrados entre llaves.
Inicialización de variables de cadena
• Dado que en el literal hay 36 caracteres y el compilador
añade el carácter ‘0’, un total de 37 caracteres se
asignarán a cadenatest.
• Ahora bien, una dena no se puede inicializar fuera de la
declaración. Por ejemplo, si se trata de hacer
Inicialización de variables de cadena
• C++ le dará un error al compilar. La razón es que un identificador
de cadena, como cualquier identificador de Array, se trata como
un valor de dirección.
• ¿Cómo se puede inicializar una cadena fuera de la declaración?
Más adelante se verá, pero podemos indicar que será necesario
utilizar una función de cadena denominada strcpy ( ).
Inicialización de variables de cadena
• La lectura usual de datos con el objeto cin y el operador
>>, cuando se aplica a datos de cadena, producirá
normalmente anomalías. Así, por ejemplo, trate de
ejecutar el siguiente programa:
Inicialización de variables de cadena
Inicialización de variables de cadena
• El programa define Nombre como un array de caracteres
de 30 elementos. Suponga que introduce la entrada Pepe
Mackoy, cuando ejecuta el programa se visualizara en
pantalla Pepe. Es decir la palabra Mackoy no se ha
asignado a la variable cadena Nombre.
Inicialización de variables de cadena
• La razón es que el objeto cin termina la operación de lectura
siempre que se encuentra en un espacio en blanco.
• Así pues, ¿Cuál será el método correcto para lectura de
cadenas, cuando estas cadenas, contienen mas de una
palabra (caso muy usual)?
Inicialización de variables de cadena
• El método recomendado será utilizar una función
denominada getline( ), en unión con cin, en lugar del
operador >>. La función getline permitirá a cin leer la
cadena completa, incluyendo cualquier espacio en
blanco.
Inicialización de variables de cadena
• cin es un objeto de la clase istream y getline ( ) es una
función miembro de la clase iostream; en consecuencia,
cin puede llamar a getline ( ) para leer una línea
completa incluyendo cualquier espacio en blanco.
Inicialización de variables de cadena
• La sintaxis de la función getline ( ) es:
Inicialización de variables de cadena
• La lectura de cadenas con cin se realiza con el siguiente
formato:
Inicialización de variables de cadena
• La función getline ( ) utiliza tres argumentos. El primer
argumento es el identificador de la variable cadena (nombre
de la cadena). El segundo argumento es la longitud máxima
de la cadena (él numero máximo de caracteres que se
leerán), que debe ser al menos dos caracteres mayor que la
cadena real, para permitir el carácter nulo ‘0’y el ‘n’.
Inicialización de variables de cadena
• Por ultimo, el carácter separador se lee y almacena
como el siguiente al ultimo carácter de la cadena. La
función getline ( ) inserta automáticamente el carácter
núlo como le ultimo carácter de la cadena.
Inicialización de variables de cadena
• El ejemplo anterior para leer la cadena Nombre se
convierte en:
Inicialización de variables de cadena
Inicialización de variables de cadena
• Si se introduce la cadena Pepe Markov, el Array Nombre almacenará los
caracteres siguientes:
• Nombre
• [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
P e P e M a r k o y ‘n’ ‘0’ … datos
aleatorio
s
Ejemplo
Ejemplo
Cadenas y funciones de cadena
• El siguiente programa lee y escribe el nombre, dirección y teléfono
de un usuario
Cadenas y funciones de cadena
• Esto es muy sencillo si usamos la función cin.getline( ); Esta función necesita
tres datos o parámetros:
• Nombre. El nombre de la variable que va a contener el string
• Longitud. La cantidad de caracteres que queremos que se puedan introducir
(nunca mayor que la longitud del string).
• Carácter de fin. El carácter que el usuario va usar como final de la cadena. Por
lo general es el ‘enter’ que se representa como ‘n’ (diagonal n).
Cadenas y funciones de cadena
La Biblioteca String.h
• La biblioteca estándar de C++ contiene la biblioteca de cadena
STRING.H, que contiene las funciones de manipulación de cadenas
utilizadas mas frecuentemente.
• Los archivos de cabecera STDIO.H e IOSTREAM.H también soportan E/S
de cadenas. Algunos fabricantes de C++ también incorporan otras
bibliotecas para manipular cadenas, pero como no son estándar no se
consideraran en esta sesión.
La Biblioteca String.h
• El uso de las funciones de cadena tienen una variable parámetros
a declarada similar a:
La Biblioteca String.h
• Esto significa que la función esperar un puntero a una cadena.
Cuando se utiliza la función, se puede usar un puntero a una
cadena o se puede especificar el nombre de una variable array
char. La Tabla 1 resume algunas de las funciones cadena más
usuales.
La Biblioteca String.h
Función Cabecera de la función y prototipo
strlen size_t strlen(const char *s);
Devuelve la longitud de la cadena s.
strcpy char * strcpy(char *dest, const char *fuente);
Copia la cadena fuente a la cadena destino
strcmp in strcmp(const char *s1, const char *s2);
Compara la cadena s1 a s2 y devuelve:
0 si s1 = s2
<0 si s1 < s2
>0 si s1 > s2
strcmpi int strcmpi(const char *s1, const char *s2);
Igual que strcmp( ), pero trata los caracteres como
si fueran todos minusculas
strcat char *strcat(char *destino, const char *fuente);
Añade la cadena fuente al final de destino
strnset char *strnset(char *s, int ch, size_t n);
Utiliza strcmp( ) sobre una cadena existente par
fijar n bytes de la cadena al carácter ch.
strstr char *strstr(const char *s1, const char *s2);
Busca la cadena s2 en s1 y devuelve un puntero a
los caracteres donde se encuentra s2.
La palabra reservada const
• Las funciones de cadena declaradas en STRING.H, recogidas en la
Tabla 1 y algunas otras, incluyen la palabra reservada const. La
ventaja de esta palabra reservada es que se puede ver
rápidamente la diferencia entre los parámetros de entrada y
salida.
La palabra reservada const
• Por ejemplo, el segundo parámetro fuente de strcpy representa el
área fuente; se utiliza solo para copiar los caracteres de ella, de
modo que esta área no se modificara. 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.
La palabra reservada const
• En contraste el primer parámetro dest de strcmpy 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 destino.
Arrays y Cadenas como parámetros de
funciones
• Los arrays y cadenas se pueden pasar solo por referencia, no por
valor. En la función, las referencias a los elementos individuales se
hacen por indirección de la dirección objeto.
Arrays y Cadenas como parámetros de
funciones
• Considérese el programa C++ PASARRAY.CPP, que implementa una
función Longitud( ) que calcula la longitud de una cadena
terminada en nulo. El parámetro cad se declara como un array de
caracteres de tamaño desconocido.
• Este ejemplo es un caso que muestra el paso de un array por
valor, método no recomendado.
Arrays y Cadenas como parámetros de
funciones
Arrays y Cadenas como parámetros de
funciones
Arrays y Cadenas como parámetros de
funciones
• El programa principal contiene el código para la
dirección de la constante de cadena a la función
Longitud ( ). El cuerpo bucle while dentro de la función
cuenta con los caracteres no nulos y termina cuando se
encuentra el byte nulo al final de la cadena.
Uso del operador de referencia para tipos
array
• Otro método de escribir la función Longitud ( ) es utilizar
el operador de referencia & C++. Cuando se utiliza este
operador, se pasa por el parámetro por referencia.
Uso del operador de referencia para tipos
array
• Se puede dar un nombre nuevo a cualquier tipo de datos mediante typedef.
• La sintaxis es typedef declaración;
• donde declaración tiene la forma de una declaración de variable, sólo que se
está definiendo un tipo de datos.
• typedef long pareja [2];
Uso del operador de referencia para tipos
array
• define un tipo pareja que se puede usar en declaraciones de variables:
• pareja p;
• es equivalente a
• long p [2];
Uso del operador de referencia para tipos
array
Uso del operador de referencia para tipos
array
Uso de punteros para pasar una cadena
• Los punteros se pueden utilizar para pasar arrays a funciones:
Uso de punteros para pasar una cadena
Uso de punteros para pasar una cadena
• Observe que en las declaraciones de parámetros ningún array esta definido sino
punteros tipo char. En la línea:
• *dest++ = *fuente++;
• Los punteros se utilizan para acceder a las cadenas fuente y destino,
respectivamente. En la llamada a la función extraer se utiliza el operador &
para obtener la dirección de las cadenas fuente y destino.
Asignación de Cadenas
• C++ soporta dos métodos para asignar cadenas. Uno de ellos se ha visto cuando
se inicializan las variables de cadena. La sintaxis utilizada era
Ejemplo
• C++ soporta dos métodos para asignar cadenas. Uno de ellos se ha visto cuando
se inicializan las variables de cadena. La sintaxis utilizada era
Ejemplo
• El segundo método para asignación de una cadena a otra es utilizar la función
strcpy. La función strcpy copia los caracteres de la cadena fuente a la carpeta
destino. La funcione supone que la cadena destino tiene espacio suficiente
para contener toda la cadena fuente. El prototipo de función es:
Ejemplo
Ejemplo
• La función strcpy( ) copia “Cadena a copiar” en la cadena nombre
y añade un carácter nulo al final de la cadena resultante. El
siguiente programa muestra una aplicación de strcpy ( ).
Ejemplo
Ejemplo

Contenu connexe

Tendances

Tendances (20)

Ejercicios de Grafos y Digrafos.
Ejercicios de Grafos y Digrafos.Ejercicios de Grafos y Digrafos.
Ejercicios de Grafos y Digrafos.
 
Definición de punteros en C++ en Introducción a la Programación
Definición de punteros en C++ en Introducción a la ProgramaciónDefinición de punteros en C++ en Introducción a la Programación
Definición de punteros en C++ en Introducción a la Programación
 
Listas doblemente enlazadas C++ UP
Listas doblemente enlazadas C++ UPListas doblemente enlazadas C++ UP
Listas doblemente enlazadas C++ UP
 
Pilas En C++
Pilas En C++Pilas En C++
Pilas En C++
 
C++ y sus librerias
C++ y sus libreriasC++ y sus librerias
C++ y sus librerias
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Pseint
PseintPseint
Pseint
 
Aplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionalesAplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionales
 
Jtextarea
JtextareaJtextarea
Jtextarea
 
Arreglos c++
Arreglos c++Arreglos c++
Arreglos c++
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
2.2 configuración del entorno de trabajo de la base de datos en web
2.2 configuración del entorno de trabajo de la base de datos en web2.2 configuración del entorno de trabajo de la base de datos en web
2.2 configuración del entorno de trabajo de la base de datos en web
 
8.clases y objetos en c++
8.clases y objetos en c++8.clases y objetos en c++
8.clases y objetos en c++
 
52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo
 
Programación 1: arreglos en C
Programación 1: arreglos en CProgramación 1: arreglos en C
Programación 1: arreglos en C
 
Ejemplos Para Dev C++
Ejemplos Para Dev C++Ejemplos Para Dev C++
Ejemplos Para Dev C++
 
Arreglo de punteros
Arreglo de punterosArreglo de punteros
Arreglo de punteros
 
Entrada y salida de datos en c
Entrada y salida de datos en cEntrada y salida de datos en c
Entrada y salida de datos en c
 
Eliminar elementos de una cola
Eliminar elementos de una colaEliminar elementos de una cola
Eliminar elementos de una cola
 
Matrices
MatricesMatrices
Matrices
 

En vedette

Cuckoo sandbox
Cuckoo sandboxCuckoo sandbox
Cuckoo sandboxTensor
 
Ley de kirchhoff
Ley de kirchhoffLey de kirchhoff
Ley de kirchhoffgreybili
 
Sentencia, secuencia y bloque
Sentencia, secuencia y bloqueSentencia, secuencia y bloque
Sentencia, secuencia y bloqueTensor
 
Clase 16 ley de biot savart
Clase 16 ley de biot savartClase 16 ley de biot savart
Clase 16 ley de biot savartTensor
 
Clase 5 LKV
Clase 5 LKVClase 5 LKV
Clase 5 LKVTensor
 
Física2 bach 9.4 ley de lorentz
Física2 bach 9.4 ley de lorentzFísica2 bach 9.4 ley de lorentz
Física2 bach 9.4 ley de lorentzTarpafar
 
Clase 10 ley de biot savart
Clase 10 ley de biot savartClase 10 ley de biot savart
Clase 10 ley de biot savartTensor
 
Armitage pruebas
Armitage pruebasArmitage pruebas
Armitage pruebasTensor
 
Sentencia, secuencia y bloque
Sentencia, secuencia y bloqueSentencia, secuencia y bloque
Sentencia, secuencia y bloqueTensor
 
Condicional if en c++
Condicional if en c++Condicional if en c++
Condicional if en c++Tensor
 
Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Tensor
 
Introducción
IntroducciónIntroducción
IntroducciónTensor
 
Ley de-biot-savart-electromagnetismo
Ley de-biot-savart-electromagnetismoLey de-biot-savart-electromagnetismo
Ley de-biot-savart-electromagnetismoAly Olvera
 
Ley de ampere. ITO
Ley de ampere. ITOLey de ampere. ITO
Ley de ampere. ITOJuan Toledo
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++Tensor
 
Clase 5 ley de biot savart
Clase 5 ley de biot savartClase 5 ley de biot savart
Clase 5 ley de biot savartTensor
 
Elicitacion de requerimientos
Elicitacion de requerimientosElicitacion de requerimientos
Elicitacion de requerimientosTensor
 
Simulación en promodel clase 04
Simulación en promodel clase 04Simulación en promodel clase 04
Simulación en promodel clase 04Tensor
 

En vedette (20)

Cuckoo sandbox
Cuckoo sandboxCuckoo sandbox
Cuckoo sandbox
 
Ley de kirchhoff
Ley de kirchhoffLey de kirchhoff
Ley de kirchhoff
 
Sentencia, secuencia y bloque
Sentencia, secuencia y bloqueSentencia, secuencia y bloque
Sentencia, secuencia y bloque
 
Ley de ampere
Ley de ampereLey de ampere
Ley de ampere
 
Clase 16 ley de biot savart
Clase 16 ley de biot savartClase 16 ley de biot savart
Clase 16 ley de biot savart
 
Clase 5 LKV
Clase 5 LKVClase 5 LKV
Clase 5 LKV
 
Física2 bach 9.4 ley de lorentz
Física2 bach 9.4 ley de lorentzFísica2 bach 9.4 ley de lorentz
Física2 bach 9.4 ley de lorentz
 
Clase 10 ley de biot savart
Clase 10 ley de biot savartClase 10 ley de biot savart
Clase 10 ley de biot savart
 
Armitage pruebas
Armitage pruebasArmitage pruebas
Armitage pruebas
 
Sentencia, secuencia y bloque
Sentencia, secuencia y bloqueSentencia, secuencia y bloque
Sentencia, secuencia y bloque
 
Condicional if en c++
Condicional if en c++Condicional if en c++
Condicional if en c++
 
Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)
 
Introducción
IntroducciónIntroducción
Introducción
 
Ley de-biot-savart-electromagnetismo
Ley de-biot-savart-electromagnetismoLey de-biot-savart-electromagnetismo
Ley de-biot-savart-electromagnetismo
 
Ley de ampere. ITO
Ley de ampere. ITOLey de ampere. ITO
Ley de ampere. ITO
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++
 
Clase 5 ley de biot savart
Clase 5 ley de biot savartClase 5 ley de biot savart
Clase 5 ley de biot savart
 
Elicitacion de requerimientos
Elicitacion de requerimientosElicitacion de requerimientos
Elicitacion de requerimientos
 
Simulación en promodel clase 04
Simulación en promodel clase 04Simulación en promodel clase 04
Simulación en promodel clase 04
 
Primera ley de faraday
Primera ley de faradayPrimera ley de faraday
Primera ley de faraday
 

Similaire à Cadenas y funciones de cadena

Similaire à Cadenas y funciones de cadena (20)

Pe15 cadenacaracteres
Pe15 cadenacaracteresPe15 cadenacaracteres
Pe15 cadenacaracteres
 
Cadenas
CadenasCadenas
Cadenas
 
Cadenas de Caracteres
Cadenas de CaracteresCadenas de Caracteres
Cadenas de Caracteres
 
Asignacion
AsignacionAsignacion
Asignacion
 
6.2 cadenas de caracteres
6.2 cadenas de caracteres6.2 cadenas de caracteres
6.2 cadenas de caracteres
 
Cadena Juan Bastidas
Cadena Juan BastidasCadena Juan Bastidas
Cadena Juan Bastidas
 
Apunte cadenas
Apunte cadenasApunte cadenas
Apunte cadenas
 
Capitulo 8 Cadenas
Capitulo 8  CadenasCapitulo 8  Cadenas
Capitulo 8 Cadenas
 
Programacion
ProgramacionProgramacion
Programacion
 
Programacion
ProgramacionProgramacion
Programacion
 
Uso de las clases iostream
Uso de las clases iostreamUso de las clases iostream
Uso de las clases iostream
 
Funciones cadena
Funciones cadenaFunciones cadena
Funciones cadena
 
!Prograc8
!Prograc8!Prograc8
!Prograc8
 
Librerias de dev c++
Librerias de dev c++Librerias de dev c++
Librerias de dev c++
 
Cadenas De Caracteres
Cadenas De CaracteresCadenas De Caracteres
Cadenas De Caracteres
 
Longitud de cadena y funciones en java
Longitud de cadena y funciones en javaLongitud de cadena y funciones en java
Longitud de cadena y funciones en java
 
Escuela Politecnica Del Ejercito
Escuela Politecnica Del EjercitoEscuela Politecnica Del Ejercito
Escuela Politecnica Del Ejercito
 
Intro matlab msantos
Intro matlab msantosIntro matlab msantos
Intro matlab msantos
 
Funciones de Cadenas/ Computación para ingenieros
Funciones de Cadenas/ Computación para ingenierosFunciones de Cadenas/ Computación para ingenieros
Funciones de Cadenas/ Computación para ingenieros
 
Caracteres y cadenas en C
Caracteres y cadenas en CCaracteres y cadenas en C
Caracteres y cadenas en C
 

Plus de Tensor

Libertad
LibertadLibertad
LibertadTensor
 
Metodo de la bisección
Metodo de la bisecciónMetodo de la bisección
Metodo de la bisecciónTensor
 
Transito vehicular
Transito vehicularTransito vehicular
Transito vehicularTensor
 
Teoria de colas
Teoria de colasTeoria de colas
Teoria de colasTensor
 
Practica 7 2016
Practica 7 2016Practica 7 2016
Practica 7 2016Tensor
 
Practica 6 2016
Practica 6 2016Practica 6 2016
Practica 6 2016Tensor
 
Game maker
Game makerGame maker
Game makerTensor
 
Practica 5 2016
Practica 5 2016Practica 5 2016
Practica 5 2016Tensor
 
Procesamiento de archivos
Procesamiento de archivosProcesamiento de archivos
Procesamiento de archivosTensor
 
Reduccion de orden
Reduccion de ordenReduccion de orden
Reduccion de ordenTensor
 
Variación+de+parametros
Variación+de+parametrosVariación+de+parametros
Variación+de+parametrosTensor
 
Coeficientes indeterminados enfoque de superposición
Coeficientes indeterminados   enfoque de superposiciónCoeficientes indeterminados   enfoque de superposición
Coeficientes indeterminados enfoque de superposiciónTensor
 
Bernoulli y ricatti
Bernoulli y ricattiBernoulli y ricatti
Bernoulli y ricattiTensor
 
Practica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioPractica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioTensor
 
Clase 14 ondas reflejadas
Clase 14 ondas reflejadasClase 14 ondas reflejadas
Clase 14 ondas reflejadasTensor
 
Ondas em
Ondas emOndas em
Ondas emTensor
 
Clase 7 ondas electromagneticas
Clase 7 ondas electromagneticasClase 7 ondas electromagneticas
Clase 7 ondas electromagneticasTensor
 
Practicas 8 2016
Practicas 8 2016Practicas 8 2016
Practicas 8 2016Tensor
 
Tipos de datos ok
Tipos de datos okTipos de datos ok
Tipos de datos okTensor
 
Practica 4 2016
Practica 4 2016Practica 4 2016
Practica 4 2016Tensor
 

Plus de Tensor (20)

Libertad
LibertadLibertad
Libertad
 
Metodo de la bisección
Metodo de la bisecciónMetodo de la bisección
Metodo de la bisección
 
Transito vehicular
Transito vehicularTransito vehicular
Transito vehicular
 
Teoria de colas
Teoria de colasTeoria de colas
Teoria de colas
 
Practica 7 2016
Practica 7 2016Practica 7 2016
Practica 7 2016
 
Practica 6 2016
Practica 6 2016Practica 6 2016
Practica 6 2016
 
Game maker
Game makerGame maker
Game maker
 
Practica 5 2016
Practica 5 2016Practica 5 2016
Practica 5 2016
 
Procesamiento de archivos
Procesamiento de archivosProcesamiento de archivos
Procesamiento de archivos
 
Reduccion de orden
Reduccion de ordenReduccion de orden
Reduccion de orden
 
Variación+de+parametros
Variación+de+parametrosVariación+de+parametros
Variación+de+parametros
 
Coeficientes indeterminados enfoque de superposición
Coeficientes indeterminados   enfoque de superposiciónCoeficientes indeterminados   enfoque de superposición
Coeficientes indeterminados enfoque de superposición
 
Bernoulli y ricatti
Bernoulli y ricattiBernoulli y ricatti
Bernoulli y ricatti
 
Practica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioPractica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicio
 
Clase 14 ondas reflejadas
Clase 14 ondas reflejadasClase 14 ondas reflejadas
Clase 14 ondas reflejadas
 
Ondas em
Ondas emOndas em
Ondas em
 
Clase 7 ondas electromagneticas
Clase 7 ondas electromagneticasClase 7 ondas electromagneticas
Clase 7 ondas electromagneticas
 
Practicas 8 2016
Practicas 8 2016Practicas 8 2016
Practicas 8 2016
 
Tipos de datos ok
Tipos de datos okTipos de datos ok
Tipos de datos ok
 
Practica 4 2016
Practica 4 2016Practica 4 2016
Practica 4 2016
 

Dernier

historieta materia de ecologías producto
historieta materia de ecologías productohistorieta materia de ecologías producto
historieta materia de ecologías productommartinezmarquez30
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...Martin M Flynn
 
tema5 2eso 2024 Europa entre los siglos XII y XV
tema5 2eso 2024 Europa entre los siglos XII y XVtema5 2eso 2024 Europa entre los siglos XII y XV
tema5 2eso 2024 Europa entre los siglos XII y XVChema R.
 
Libro Ecuador Realidad Nacional ECUADOR.
Libro Ecuador Realidad Nacional ECUADOR.Libro Ecuador Realidad Nacional ECUADOR.
Libro Ecuador Realidad Nacional ECUADOR.Edith Liccioni
 
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfMEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfJosé Hecht
 
Presentación MF 1445 EVALUACION COMO Y QUE
Presentación MF 1445 EVALUACION COMO Y QUEPresentación MF 1445 EVALUACION COMO Y QUE
Presentación MF 1445 EVALUACION COMO Y QUEJosé Hecht
 
Descripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraDescripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraJose Sanchez
 
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docxMagalyDacostaPea
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docxMagalyDacostaPea
 
Salvando mi mundo , mi comunidad , y mi entorno
Salvando mi mundo , mi comunidad  , y mi entornoSalvando mi mundo , mi comunidad  , y mi entorno
Salvando mi mundo , mi comunidad , y mi entornoday561sol
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJOLeninCariMogrovejo
 
Biografía del General Eloy Alfaro Delgado
Biografía del General Eloy Alfaro DelgadoBiografía del General Eloy Alfaro Delgado
Biografía del General Eloy Alfaro DelgadoJosé Luis Palma
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...MagalyDacostaPea
 
Buenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaBuenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaMarco Camacho
 
BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................ScarletMedina4
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdflizcortes48
 

Dernier (20)

historieta materia de ecologías producto
historieta materia de ecologías productohistorieta materia de ecologías producto
historieta materia de ecologías producto
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
 
Acuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptxAcuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptx
 
tema5 2eso 2024 Europa entre los siglos XII y XV
tema5 2eso 2024 Europa entre los siglos XII y XVtema5 2eso 2024 Europa entre los siglos XII y XV
tema5 2eso 2024 Europa entre los siglos XII y XV
 
Libro Ecuador Realidad Nacional ECUADOR.
Libro Ecuador Realidad Nacional ECUADOR.Libro Ecuador Realidad Nacional ECUADOR.
Libro Ecuador Realidad Nacional ECUADOR.
 
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfMEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
 
Presentación MF 1445 EVALUACION COMO Y QUE
Presentación MF 1445 EVALUACION COMO Y QUEPresentación MF 1445 EVALUACION COMO Y QUE
Presentación MF 1445 EVALUACION COMO Y QUE
 
Descripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraDescripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldadura
 
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
 
Salvando mi mundo , mi comunidad , y mi entorno
Salvando mi mundo , mi comunidad  , y mi entornoSalvando mi mundo , mi comunidad  , y mi entorno
Salvando mi mundo , mi comunidad , y mi entorno
 
Unidad 2 | Teorías de la Comunicación | MCDIU
Unidad 2 | Teorías de la Comunicación | MCDIUUnidad 2 | Teorías de la Comunicación | MCDIU
Unidad 2 | Teorías de la Comunicación | MCDIU
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
 
Acuerdo segundo periodo - Grado Septimo.pptx
Acuerdo segundo periodo - Grado Septimo.pptxAcuerdo segundo periodo - Grado Septimo.pptx
Acuerdo segundo periodo - Grado Septimo.pptx
 
Biografía del General Eloy Alfaro Delgado
Biografía del General Eloy Alfaro DelgadoBiografía del General Eloy Alfaro Delgado
Biografía del General Eloy Alfaro Delgado
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
 
Buenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaBuenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria Farmaceutica
 
¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx
 
BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdf
 

Cadenas y funciones de cadena

  • 1. Cadenas y funciones de cadena Parte 1 Clase 10
  • 2. Cadenas y funciones de cadena • C++ ( y su lenguaje padre, C) no tiene datos predefinidos tipo cadena (string). En su lugar, C++, como C, manipula cadenas mediante arrays de caracteres que terminan con el carácter nulo ASCII (‘ 0’). • Una cadena se considera como un array unidimensional de tipo char o unsigned char.
  • 3. Cadenas y funciones de cadena L a c a d e n a d e t e s t L a c a d e n a d e t e s t 0 a) b) b) Cadena caracteres a) Array de caracteres
  • 4. Concepto de Cadena • Una cadena es un tipo dato compuesto, un array de caracteres (char), terminado por un carácter nulo (‘ /0’). • Una cadena (también llamada constante de cadena o literal de cadena) es “ABC”. Cuando la cadena aparece dentro de un programa se verá como si se almacenaran cuatro elementos: ‘A’, ‘B’, ‘C’ y ‘0’.
  • 5. Concepto de Cadena • En consecuencia, se considera que la cadena “ABC” es un array de cuatro elementos de tipo char. • El valor real de esta cadena es la dirección de su primer carácter y su tipo es un puntero char. Aplicando el operador * a un objeto de tipo se obtiene el carácter que forma su contenido; es posible también utilizar aritmética de direcciones con cadenas:
  • 6. Concepto de Cadena *”ABC” Es igual a ‘A’ *(“ABC” +1) Es igual a ‘B’ *(“ABC” +2) Es igual a ‘C’ *(“ABC” +3) Es igual a ‘0’
  • 7. Concepto de Cadena • De igual forma, utilizando el subíndice del array se puede escribir: “ABC” [0] Es igual a ‘A’ “ABC” [1] Es igual a ‘B’ “ABC” [2] Es igual a ‘C’ “ABC” [3] Es igual a ‘0’
  • 8. Declaración de variables de cadena • Las cadenas se declaran como los restantes tipos de arrays. El operador postfijo [ ] contiene el tamaño máximo del objeto. El tipo base, naturalmente, es char, o bien unsigned char.
  • 10. Declaración de variables de cadena • El tipo unsigned char puede ser de interés en aquellos casos en que los caracteres especiales presentes puedan tener el bit de orden alto activado. Si el carácter se considera con signo, el bit de mayor peso (orden alto) se interpreta como bit de signo y se puede propagar a la posición de mayor orden (peso) de nuevo tipo.
  • 11. Declaración de variables de cadena • Observe que el tamaño de la cadena ha de incluir el carácter ‘0’. En consecuencia, para definir un array de caracteres que contenga la cadena “ABC-DEF”, escriba:
  • 12. Inicialización de variables de cadena • Todos los tipos de arrays requieren una inicialización que consiste en una lista de valores separados por comas y encerrados entre llaves.
  • 13. Inicialización de variables de cadena • Dado que en el literal hay 36 caracteres y el compilador añade el carácter ‘0’, un total de 37 caracteres se asignarán a cadenatest. • Ahora bien, una dena no se puede inicializar fuera de la declaración. Por ejemplo, si se trata de hacer
  • 14. Inicialización de variables de cadena • C++ le dará un error al compilar. La razón es que un identificador de cadena, como cualquier identificador de Array, se trata como un valor de dirección. • ¿Cómo se puede inicializar una cadena fuera de la declaración? Más adelante se verá, pero podemos indicar que será necesario utilizar una función de cadena denominada strcpy ( ).
  • 15. Inicialización de variables de cadena • La lectura usual de datos con el objeto cin y el operador >>, cuando se aplica a datos de cadena, producirá normalmente anomalías. Así, por ejemplo, trate de ejecutar el siguiente programa:
  • 17. Inicialización de variables de cadena • El programa define Nombre como un array de caracteres de 30 elementos. Suponga que introduce la entrada Pepe Mackoy, cuando ejecuta el programa se visualizara en pantalla Pepe. Es decir la palabra Mackoy no se ha asignado a la variable cadena Nombre.
  • 18. Inicialización de variables de cadena • La razón es que el objeto cin termina la operación de lectura siempre que se encuentra en un espacio en blanco. • Así pues, ¿Cuál será el método correcto para lectura de cadenas, cuando estas cadenas, contienen mas de una palabra (caso muy usual)?
  • 19. Inicialización de variables de cadena • El método recomendado será utilizar una función denominada getline( ), en unión con cin, en lugar del operador >>. La función getline permitirá a cin leer la cadena completa, incluyendo cualquier espacio en blanco.
  • 20. Inicialización de variables de cadena • cin es un objeto de la clase istream y getline ( ) es una función miembro de la clase iostream; en consecuencia, cin puede llamar a getline ( ) para leer una línea completa incluyendo cualquier espacio en blanco.
  • 21. Inicialización de variables de cadena • La sintaxis de la función getline ( ) es:
  • 22. Inicialización de variables de cadena • La lectura de cadenas con cin se realiza con el siguiente formato:
  • 23. Inicialización de variables de cadena • La función getline ( ) utiliza tres argumentos. El primer argumento es el identificador de la variable cadena (nombre de la cadena). El segundo argumento es la longitud máxima de la cadena (él numero máximo de caracteres que se leerán), que debe ser al menos dos caracteres mayor que la cadena real, para permitir el carácter nulo ‘0’y el ‘n’.
  • 24. Inicialización de variables de cadena • Por ultimo, el carácter separador se lee y almacena como el siguiente al ultimo carácter de la cadena. La función getline ( ) inserta automáticamente el carácter núlo como le ultimo carácter de la cadena.
  • 25. Inicialización de variables de cadena • El ejemplo anterior para leer la cadena Nombre se convierte en:
  • 27. Inicialización de variables de cadena • Si se introduce la cadena Pepe Markov, el Array Nombre almacenará los caracteres siguientes: • Nombre • [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] P e P e M a r k o y ‘n’ ‘0’ … datos aleatorio s
  • 30. Cadenas y funciones de cadena • El siguiente programa lee y escribe el nombre, dirección y teléfono de un usuario
  • 31. Cadenas y funciones de cadena • Esto es muy sencillo si usamos la función cin.getline( ); Esta función necesita tres datos o parámetros: • Nombre. El nombre de la variable que va a contener el string • Longitud. La cantidad de caracteres que queremos que se puedan introducir (nunca mayor que la longitud del string). • Carácter de fin. El carácter que el usuario va usar como final de la cadena. Por lo general es el ‘enter’ que se representa como ‘n’ (diagonal n).
  • 32. Cadenas y funciones de cadena
  • 33. La Biblioteca String.h • La biblioteca estándar de C++ contiene la biblioteca de cadena STRING.H, que contiene las funciones de manipulación de cadenas utilizadas mas frecuentemente. • Los archivos de cabecera STDIO.H e IOSTREAM.H también soportan E/S de cadenas. Algunos fabricantes de C++ también incorporan otras bibliotecas para manipular cadenas, pero como no son estándar no se consideraran en esta sesión.
  • 34. La Biblioteca String.h • El uso de las funciones de cadena tienen una variable parámetros a declarada similar a:
  • 35. La Biblioteca String.h • Esto significa que la función esperar un puntero a una cadena. Cuando se utiliza la función, se puede usar un puntero a una cadena o se puede especificar el nombre de una variable array char. La Tabla 1 resume algunas de las funciones cadena más usuales.
  • 36. La Biblioteca String.h Función Cabecera de la función y prototipo strlen size_t strlen(const char *s); Devuelve la longitud de la cadena s. strcpy char * strcpy(char *dest, const char *fuente); Copia la cadena fuente a la cadena destino strcmp in strcmp(const char *s1, const char *s2); Compara la cadena s1 a s2 y devuelve: 0 si s1 = s2 <0 si s1 < s2 >0 si s1 > s2 strcmpi int strcmpi(const char *s1, const char *s2); Igual que strcmp( ), pero trata los caracteres como si fueran todos minusculas strcat char *strcat(char *destino, const char *fuente); Añade la cadena fuente al final de destino strnset char *strnset(char *s, int ch, size_t n); Utiliza strcmp( ) sobre una cadena existente par fijar n bytes de la cadena al carácter ch. strstr char *strstr(const char *s1, const char *s2); Busca la cadena s2 en s1 y devuelve un puntero a los caracteres donde se encuentra s2.
  • 37. La palabra reservada const • Las funciones de cadena declaradas en STRING.H, recogidas en la Tabla 1 y algunas otras, incluyen la palabra reservada const. La ventaja de esta palabra reservada es que se puede ver rápidamente la diferencia entre los parámetros de entrada y salida.
  • 38. La palabra reservada const • Por ejemplo, el segundo parámetro fuente de strcpy representa el área fuente; se utiliza solo para copiar los caracteres de ella, de modo que esta área no se modificara. 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.
  • 39. La palabra reservada const • En contraste el primer parámetro dest de strcmpy 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 destino.
  • 40. Arrays y Cadenas como parámetros de funciones • Los arrays y cadenas se pueden pasar solo por referencia, no por valor. En la función, las referencias a los elementos individuales se hacen por indirección de la dirección objeto.
  • 41. Arrays y Cadenas como parámetros de funciones • Considérese el programa C++ PASARRAY.CPP, que implementa una función Longitud( ) que calcula la longitud de una cadena terminada en nulo. El parámetro cad se declara como un array de caracteres de tamaño desconocido. • Este ejemplo es un caso que muestra el paso de un array por valor, método no recomendado.
  • 42. Arrays y Cadenas como parámetros de funciones
  • 43. Arrays y Cadenas como parámetros de funciones
  • 44. Arrays y Cadenas como parámetros de funciones • El programa principal contiene el código para la dirección de la constante de cadena a la función Longitud ( ). El cuerpo bucle while dentro de la función cuenta con los caracteres no nulos y termina cuando se encuentra el byte nulo al final de la cadena.
  • 45. Uso del operador de referencia para tipos array • Otro método de escribir la función Longitud ( ) es utilizar el operador de referencia & C++. Cuando se utiliza este operador, se pasa por el parámetro por referencia.
  • 46. Uso del operador de referencia para tipos array • Se puede dar un nombre nuevo a cualquier tipo de datos mediante typedef. • La sintaxis es typedef declaración; • donde declaración tiene la forma de una declaración de variable, sólo que se está definiendo un tipo de datos. • typedef long pareja [2];
  • 47. Uso del operador de referencia para tipos array • define un tipo pareja que se puede usar en declaraciones de variables: • pareja p; • es equivalente a • long p [2];
  • 48. Uso del operador de referencia para tipos array
  • 49. Uso del operador de referencia para tipos array
  • 50. Uso de punteros para pasar una cadena • Los punteros se pueden utilizar para pasar arrays a funciones:
  • 51. Uso de punteros para pasar una cadena
  • 52. Uso de punteros para pasar una cadena • Observe que en las declaraciones de parámetros ningún array esta definido sino punteros tipo char. En la línea: • *dest++ = *fuente++; • Los punteros se utilizan para acceder a las cadenas fuente y destino, respectivamente. En la llamada a la función extraer se utiliza el operador & para obtener la dirección de las cadenas fuente y destino.
  • 53. Asignación de Cadenas • C++ soporta dos métodos para asignar cadenas. Uno de ellos se ha visto cuando se inicializan las variables de cadena. La sintaxis utilizada era
  • 54. Ejemplo • C++ soporta dos métodos para asignar cadenas. Uno de ellos se ha visto cuando se inicializan las variables de cadena. La sintaxis utilizada era
  • 55. Ejemplo • El segundo método para asignación de una cadena a otra es utilizar la función strcpy. La función strcpy copia los caracteres de la cadena fuente a la carpeta destino. La funcione supone que la cadena destino tiene espacio suficiente para contener toda la cadena fuente. El prototipo de función es:
  • 57. Ejemplo • La función strcpy( ) copia “Cadena a copiar” en la cadena nombre y añade un carácter nulo al final de la cadena resultante. El siguiente programa muestra una aplicación de strcpy ( ).