SlideShare une entreprise Scribd logo
1  sur  9
10.1 CADENAS
DE CARACTERES
Cadenas de caracteres
Las cadenas de caracteres son vectores de tipo carácter (char) que
reciben un tratamiento especial para simular el tipo de datos
“string”, presente en otros lenguajes de programación.
Para que un vector de caracteres pueda ser considerado como una
cadena de caracteres, el último de los elementos útiles del vector
debe ser el carácter nulo (código ASCII 0). Según esto, si se quiere
declarar una cadena formada por N caracteres, deberá declararse
un vector con N + 1 elementos de tipo carácter.
 Por ejemplo, la declaración char cadena[6];
reserva suficiente espacio en memoria para almacenar una cadena
de 5 caracteres, como la palabra "casco":
           0     1       2     3      4     5


         C      A      S      C     O      0
En C pueden definirse constantes correspondientes a cadenas de
caracteres. Se usan comillas dobles para delimitar el principio y el
final de la cadena, a diferencia de las comillas simples empleadas
con las constantes de tipo carácter.
Por ejemplo, la cadena constante "H" tiene muy poco que ver con el
carácter constante ’H’, si observamos la representación interna de
ambos:



 “H”         H      0             ‘H’         H
Como en toda tabla, puede asignarse cada carácter de la cadena
individualmente. No deberá olvidarse en ningún caso que el último
carácter válido de la misma debe ser el carácter nulo (’0’).
 El siguiente ejemplo inicializa la cadena de caracteres cadena con la
palabra "casco". Nótese que las tres últimas posiciones del vector no se
han usado. Es más, aunque se les hubiese asignado algún carácter, su
contenido sería ignorado. Esto es, el contenido del vector en las
posiciones posteriores al carácter nulo es ignorado.
char cadena[10];
...
cadena[0] = ’c’;
cadena[1] = ’a’;
cadena[2] = ’s’;
cadena[3] = ’c’;
cadena[4] = ’o’;
cadena[5] = ’n0’;
La inicialización de una cadena de caracteres durante la declaración
puede hacerse del mismo modo que en los vectores, aunque no
debe olvidarse incluir el carácter nulo al final de la cadena. Sin
embargo, existe un método de inicialización propio de las cadena de
caracteres, cuyo formato general es:

        char nombre [tamaño] = "cadena";

Usando este tipo de inicialización, el carácter nulo es añadido
automáticamente al final de la cadena.
Así pues, una inicialización típica de vectores como la siguiente:
char nombre[10] = { ’N’, ’U’, ’R’, ’I’, ’A’, ’0’ };
puede hacerse también de forma equivalente como:
char nombre[10] = "NURIA"; ó
char nombre[] = "NURIA";
La cadena vacía
Otra curiosidad de las cadenas de caracteres se refiere a la cadena
vacía, "" , que consta únicamente
del carácter nulo. Puesto que los caracteres posteriores al carácter
nulo son ignorados, convertir una
cadena con cualquier valor almacenado a la cadena vacía es tan
simple como asignar el carácter nulo a
la posición 0 de dicha cadena. He aquí un ejemplo:
char cadena [12] = "Una frase";
...
cadena[0] = ’0’;        /* Ahora es una cadena vacía */
                  0 1 2 3 4 5 6 7 8 9 10
   “una frase” u n a          f r a s e 0
                  0 1 2 3 4 5 6 7 8 9 10
         “”      0 n a       f r a s e 0
Manejo de cadenas de caracteres
Aunque C no incorpora en su definición operadores para el manejo de
cadenas de caracteres, todo compilador de C proporciona una librería
estándar (string.h) con funciones para facilitar su utilización.
Destacar algunas de ellas:

 strlen .-para obtener la longitud de la cadena, sin contar el
            carácter nulo.
 strcpy.- para copiar una cadena en otra,
 strcat.- para concatenar dos cadenas,
 strcmp.- para comparar dos cadenas, etc.

La librería estándar de entrada y salida (stdio.h) proporciona además
las funciones gets y puts, que permiten leer de teclado y mostrar por
pantalla una cadena de caracteres completa, respectivamente
El siguiente programa utiliza funciones de cadena de la biblioteca.

#include <iostream.h>
#include <string.h> //contiene los prototipos de funciones

Int main()
{
       char titulo[]=“c++ orale”;
       char leccion[]=“que son las cadenas de caracteres”;

        printf(“MAYUSCULAS:       %s”,strupper(titulo));
        printf(“minusculas:       %s”,strlower(titulo));

return 0;
}
Ejercicios
¿Dónde está el error en el siguiente programa?

int main()
{
int vector [10];
int x = 1;
for (x= 1; x<= 10; x++)
vector[x] = 23;
}
2. Escribir un programa que lea del teclado un vector de 10 números
enteros, lo invierta y finalmente lo muestre de nuevo.
3. Escribir un programa que cuente el número de palabras de más de
cuatro caracteres en una frase. ésta se almacena en forma de vector
cuyo último elemento es el carácter ’.’.
4. Escribir un programa que lea del teclado dos números enteros de
hasta 20 dígitos y los sume. Usar vectores para almacenar los dígitos
de cada número.

Contenu connexe

Tendances

Luis hernandez 22310621
Luis hernandez   22310621Luis hernandez   22310621
Luis hernandez 22310621Luis Miguel
 
6.1 arrays en java
6.1 arrays en java 6.1 arrays en java
6.1 arrays en java Johan Retos
 
Cadena Juan Bastidas
Cadena Juan BastidasCadena Juan Bastidas
Cadena Juan BastidasJuan Bastidas
 
Implementacion de punteros
Implementacion de punterosImplementacion de punteros
Implementacion de punterosKareliaRivas
 
Escuela Politecnica Del Ejercito
Escuela Politecnica Del EjercitoEscuela Politecnica Del Ejercito
Escuela Politecnica Del Ejercitowilpto
 
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 ingenierosMaria jose Ramirez perez
 
Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programaciondiego MC
 
Programación en c++
Programación en c++Programación en c++
Programación en c++andermijan
 
Apuntes apuntadores 2 a
Apuntes apuntadores 2 aApuntes apuntadores 2 a
Apuntes apuntadores 2 apabesacv
 
Programación en c (iii parte)
Programación en c (iii parte)Programación en c (iii parte)
Programación en c (iii parte)MarielaCuriel
 
Funciones C++
Funciones C++Funciones C++
Funciones C++Jarvis_15
 
Apuntesmatlab
ApuntesmatlabApuntesmatlab
ApuntesmatlabDFSDDD
 

Tendances (18)

Luis hernandez 22310621
Luis hernandez   22310621Luis hernandez   22310621
Luis hernandez 22310621
 
Manual de c
Manual de cManual de c
Manual de c
 
6.1 arrays en java
6.1 arrays en java 6.1 arrays en java
6.1 arrays en java
 
Cadena Juan Bastidas
Cadena Juan BastidasCadena Juan Bastidas
Cadena Juan Bastidas
 
Implementacion de punteros
Implementacion de punterosImplementacion de punteros
Implementacion de punteros
 
Escuela Politecnica Del Ejercito
Escuela Politecnica Del EjercitoEscuela Politecnica Del Ejercito
Escuela Politecnica Del Ejercito
 
2 punteros y lenguaje c
2 punteros y lenguaje c2 punteros y lenguaje c
2 punteros y lenguaje c
 
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
 
Arrays 8
Arrays 8Arrays 8
Arrays 8
 
06 - Arrays y matrices en lenguaje C
06 - Arrays y matrices en lenguaje C06 - Arrays y matrices en lenguaje C
06 - Arrays y matrices en lenguaje C
 
Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacion
 
Strcspn
StrcspnStrcspn
Strcspn
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Apuntes apuntadores 2 a
Apuntes apuntadores 2 aApuntes apuntadores 2 a
Apuntes apuntadores 2 a
 
Programación en c (iii parte)
Programación en c (iii parte)Programación en c (iii parte)
Programación en c (iii parte)
 
Diego alexis 8
Diego alexis 8Diego alexis 8
Diego alexis 8
 
Funciones C++
Funciones C++Funciones C++
Funciones C++
 
Apuntesmatlab
ApuntesmatlabApuntesmatlab
Apuntesmatlab
 

Similaire à Pe15 cadenacaracteres

6.2 cadenas de caracteres
6.2 cadenas de caracteres6.2 cadenas de caracteres
6.2 cadenas de caracteresSNPP
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadenaTensor
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadenaTensor
 
Fpr Tema6 www.fresymetal.com
Fpr Tema6 www.fresymetal.comFpr Tema6 www.fresymetal.com
Fpr Tema6 www.fresymetal.comFresyMetal
 
Capitulo 8 Cadenas
Capitulo 8  CadenasCapitulo 8  Cadenas
Capitulo 8 Cadenasguest506dc9
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacionEdison Cruz
 
18 tipos-de-datos
18 tipos-de-datos18 tipos-de-datos
18 tipos-de-datosAndy T
 
Cadenas De Caracteres
Cadenas De CaracteresCadenas De Caracteres
Cadenas De CaracteresMauricio
 
08 strings o cadenas
08 strings o cadenas08 strings o cadenas
08 strings o cadenashorusblom
 
Caracteres y cadenas en C
Caracteres y cadenas en CCaracteres y cadenas en C
Caracteres y cadenas en CRonny Parra
 
Caracteres y Cadenas en C
Caracteres y Cadenas en CCaracteres y Cadenas en C
Caracteres y Cadenas en CRonny Parra
 
14 Caracteres Y Cadenas
14 Caracteres Y Cadenas14 Caracteres Y Cadenas
14 Caracteres Y Cadenaslichic
 
Cadena De Caracteres_adrian
Cadena De Caracteres_adrianCadena De Caracteres_adrian
Cadena De Caracteres_adrianAdrian Sanchez
 

Similaire à Pe15 cadenacaracteres (20)

6.2 cadenas de caracteres
6.2 cadenas de caracteres6.2 cadenas de caracteres
6.2 cadenas de caracteres
 
Apunte cadenas
Apunte cadenasApunte cadenas
Apunte cadenas
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
 
Asignacion
AsignacionAsignacion
Asignacion
 
Fpr Tema6 www.fresymetal.com
Fpr Tema6 www.fresymetal.comFpr Tema6 www.fresymetal.com
Fpr Tema6 www.fresymetal.com
 
Capitulo 8 Cadenas
Capitulo 8  CadenasCapitulo 8  Cadenas
Capitulo 8 Cadenas
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacion
 
Funciones cadena
Funciones cadenaFunciones cadena
Funciones cadena
 
18 tipos-de-datos
18 tipos-de-datos18 tipos-de-datos
18 tipos-de-datos
 
Cadenas De Caracteres
Cadenas De CaracteresCadenas De Caracteres
Cadenas De Caracteres
 
08 strings o cadenas
08 strings o cadenas08 strings o cadenas
08 strings o cadenas
 
Caracteres y cadenas en C
Caracteres y cadenas en CCaracteres y cadenas en C
Caracteres y cadenas en C
 
CARACTERES Y CADENAS LENGUAJE C
CARACTERES Y CADENAS LENGUAJE CCARACTERES Y CADENAS LENGUAJE C
CARACTERES Y CADENAS LENGUAJE C
 
Caracteres y Cadenas en C
Caracteres y Cadenas en CCaracteres y Cadenas en C
Caracteres y Cadenas en C
 
14 Caracteres Y Cadenas
14 Caracteres Y Cadenas14 Caracteres Y Cadenas
14 Caracteres Y Cadenas
 
Cadenas mey
Cadenas meyCadenas mey
Cadenas mey
 
Cadena De Caracteres_adrian
Cadena De Caracteres_adrianCadena De Caracteres_adrian
Cadena De Caracteres_adrian
 
Cadenas y/o strings
Cadenas y/o stringsCadenas y/o strings
Cadenas y/o strings
 
Librerias de dev c++
Librerias de dev c++Librerias de dev c++
Librerias de dev c++
 

Pe15 cadenacaracteres

  • 2. Cadenas de caracteres Las cadenas de caracteres son vectores de tipo carácter (char) que reciben un tratamiento especial para simular el tipo de datos “string”, presente en otros lenguajes de programación. Para que un vector de caracteres pueda ser considerado como una cadena de caracteres, el último de los elementos útiles del vector debe ser el carácter nulo (código ASCII 0). Según esto, si se quiere declarar una cadena formada por N caracteres, deberá declararse un vector con N + 1 elementos de tipo carácter. Por ejemplo, la declaración char cadena[6]; reserva suficiente espacio en memoria para almacenar una cadena de 5 caracteres, como la palabra "casco": 0 1 2 3 4 5 C A S C O 0
  • 3. En C pueden definirse constantes correspondientes a cadenas de caracteres. Se usan comillas dobles para delimitar el principio y el final de la cadena, a diferencia de las comillas simples empleadas con las constantes de tipo carácter. Por ejemplo, la cadena constante "H" tiene muy poco que ver con el carácter constante ’H’, si observamos la representación interna de ambos: “H” H 0 ‘H’ H
  • 4. Como en toda tabla, puede asignarse cada carácter de la cadena individualmente. No deberá olvidarse en ningún caso que el último carácter válido de la misma debe ser el carácter nulo (’0’). El siguiente ejemplo inicializa la cadena de caracteres cadena con la palabra "casco". Nótese que las tres últimas posiciones del vector no se han usado. Es más, aunque se les hubiese asignado algún carácter, su contenido sería ignorado. Esto es, el contenido del vector en las posiciones posteriores al carácter nulo es ignorado. char cadena[10]; ... cadena[0] = ’c’; cadena[1] = ’a’; cadena[2] = ’s’; cadena[3] = ’c’; cadena[4] = ’o’; cadena[5] = ’n0’;
  • 5. La inicialización de una cadena de caracteres durante la declaración puede hacerse del mismo modo que en los vectores, aunque no debe olvidarse incluir el carácter nulo al final de la cadena. Sin embargo, existe un método de inicialización propio de las cadena de caracteres, cuyo formato general es: char nombre [tamaño] = "cadena"; Usando este tipo de inicialización, el carácter nulo es añadido automáticamente al final de la cadena. Así pues, una inicialización típica de vectores como la siguiente: char nombre[10] = { ’N’, ’U’, ’R’, ’I’, ’A’, ’0’ }; puede hacerse también de forma equivalente como: char nombre[10] = "NURIA"; ó char nombre[] = "NURIA";
  • 6. La cadena vacía Otra curiosidad de las cadenas de caracteres se refiere a la cadena vacía, "" , que consta únicamente del carácter nulo. Puesto que los caracteres posteriores al carácter nulo son ignorados, convertir una cadena con cualquier valor almacenado a la cadena vacía es tan simple como asignar el carácter nulo a la posición 0 de dicha cadena. He aquí un ejemplo: char cadena [12] = "Una frase"; ... cadena[0] = ’0’; /* Ahora es una cadena vacía */ 0 1 2 3 4 5 6 7 8 9 10 “una frase” u n a f r a s e 0 0 1 2 3 4 5 6 7 8 9 10 “” 0 n a f r a s e 0
  • 7. Manejo de cadenas de caracteres Aunque C no incorpora en su definición operadores para el manejo de cadenas de caracteres, todo compilador de C proporciona una librería estándar (string.h) con funciones para facilitar su utilización. Destacar algunas de ellas:  strlen .-para obtener la longitud de la cadena, sin contar el carácter nulo.  strcpy.- para copiar una cadena en otra,  strcat.- para concatenar dos cadenas,  strcmp.- para comparar dos cadenas, etc. La librería estándar de entrada y salida (stdio.h) proporciona además las funciones gets y puts, que permiten leer de teclado y mostrar por pantalla una cadena de caracteres completa, respectivamente
  • 8. El siguiente programa utiliza funciones de cadena de la biblioteca. #include <iostream.h> #include <string.h> //contiene los prototipos de funciones Int main() { char titulo[]=“c++ orale”; char leccion[]=“que son las cadenas de caracteres”; printf(“MAYUSCULAS: %s”,strupper(titulo)); printf(“minusculas: %s”,strlower(titulo)); return 0; }
  • 9. Ejercicios ¿Dónde está el error en el siguiente programa? int main() { int vector [10]; int x = 1; for (x= 1; x<= 10; x++) vector[x] = 23; } 2. Escribir un programa que lea del teclado un vector de 10 números enteros, lo invierta y finalmente lo muestre de nuevo. 3. Escribir un programa que cuente el número de palabras de más de cuatro caracteres en una frase. ésta se almacena en forma de vector cuyo último elemento es el carácter ’.’. 4. Escribir un programa que lea del teclado dos números enteros de hasta 20 dígitos y los sume. Usar vectores para almacenar los dígitos de cada número.