0% encontró este documento útil (0 votos)
3 vistas

Cadenas CPP

El documento presenta conceptos sobre cadenas en C++, incluyendo su definición, formato y ejemplos de uso. Se describen funciones de manejo de cadenas como strlen, strcpy y strcat, junto con ejemplos prácticos de su implementación. Además, se incluyen ejemplos de programas que demuestran la lectura y manipulación de cadenas en C++.

Cargado por

sangojo524
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas

Cadenas CPP

El documento presenta conceptos sobre cadenas en C++, incluyendo su definición, formato y ejemplos de uso. Se describen funciones de manejo de cadenas como strlen, strcpy y strcat, junto con ejemplos prácticos de su implementación. Además, se incluyen ejemplos de programas que demuestran la lectura y manipulación de cadenas en C++.

Cargado por

sangojo524
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 31

1 24/04/2025

UNIVERSIDAD NACIONAL MAYOR


DE SAN MARCOS
Facultad de Ingeniería Industrial

ALGORITMOS Y PROGRAMACIÓN

Mg. Daniel Surco Salinas

Fuente: Dr. Edgar Ruiz Lizama


24/04/2025

2
3 24/04/2025

CADENAS
Una cadena es un conjunto de caracteres en el cual esencialmente
es un array unidimensional.
Formato basico:

<char> <identificador> [ <dimension> ]

Ejemplo:
char nombre[20]; // nombre hasta 20 caracteres.

en este caso el compilador asignará la marca de fin de cadena ‘\0’ al último de


la cadena nombre.
char nombre[20] = “JULISA ”;

'J' 'U' 'L' 'I' 'S' 'A' \0


0 1 2 3 4 5 6
4 24/04/2025

En cambio en la siguiente declaración


char nombre [ ] = {‘J’ ‘ u’ ‘l’ ‘ i’ ‘s’ ‘ a’};
el compilador no asigna la marca de fin de cadena al objeto nombre.

El objeto cin permite leer cadenas; pero sólo hasta que encuentra un espacio
en blanco.
ejemplo:

n o m b re R O S A A L V A R E Z

char nombre[20];
cout<<”ingrese nombre”;
cin>>nombre; // Rosa Alvarez
cout<< nombre <<endl; //Rosa

Si se quiere leer una cadena completa, debe usarse la función miembro


cin.getline; tal como
cingetline (nombre, 20);
5 24/04/2025

FUNCIONES DE MANEJO DE CADENAS


C++ posee en la librería string.h una gran variedad de funciones para el
manejo de cadenas.

a) strlen().- Función que devuelve la cantidad de caracteres que existen en


una cadena antes del carácter nulo.

b) strupr().- Función que permite convertir una cadena a mayúsculas

c) strlwr().- Función que permite convertir una cadena a minúsculas

d) strcpy (destino, origen).- Función que permite copiar el valor de una


cadena (cadena origen) a otra (cadena destino).
6 24/04/2025

e) strncpy (destino, origen, cantidad).- Función que permite copiar el


numero de caracteres especificados por cantidad de la cadena origen hacia
la cadena destino.

f) strcat (destino, origen).- Función que permite concatenar dos cadenas.


Una copia de la cadena origen se añade al final de la cadena destino.

g) strncat (destino, origen, cantidad).- Función que realiza la operación de


concatenación pero para un número de caracteres.

h) strcmp().- Función que permite comparar dos cadenas de caracteres.


Devuelve 0 si las cadenas comparadas son iguales y otro valor en caso
contrario.
7 24/04/2025

APLICACIONES
Ejemplo
Ejemplo 1:
1:
/*el
/*el identificador
identificador cin
cin también
también lee
lee cadenas
cadenas pero
pero termina
termina oo
trunca
trunca la
la cadena
cadena al
al encontrar
encontrar el
el primer
primer espacio
espacio en
en
blanco*/
blanco*/

#include
#include <iostream>
<iostream>
using
using namespace
namespace std;
std;

int
int main(void)//cadena0.cpp
main(void)//cadena0.cpp
{{
char
char nombre[35];
nombre[35];
cout<<"ingrese
cout<<"ingrese su
su nombre
nombre completo:
completo: ";
";
cin>>nombre;
cin>>nombre;
cout<<"Hola,
cout<<"Hola, "<<nombre<<endl;
"<<nombre<<endl;

return
return 0;
0;
}}
8 24/04/2025

EJECUCION DEL PROGRAMA:


9 24/04/2025

Eemplo
Eemplo 2:
2:
//uso
//uso de funciones
de funciones para
para leer
leer caracteres
caracteres yy cadenas
cadenas
//en
//en C++
C++ se
se utiliza
utiliza cin.get
cin.get yy cin.getline
cin.getline respectivamente
respectivamente

#include
#include <iostream>
<iostream>
using
using namespace
namespace std;
std;
int main(void) //cadena1.cpp
int main(void) //cadena1.cpp
{{
char
char c;
c;
cout<<"ingrese
cout<<"ingrese un
un caracter
caracter ";
";
cin.get(c);
cin.get(c);
cout<<"El
cout<<"El caracter
caracter es
es "<<c<<endl;
"<<c<<endl;

return
return 0;
0;
}}
10 24/04/2025

EJECUCION DEL PROGRAMA:


11 24/04/2025

Ejemplo
Ejemplo 3:
3:
//uso
//uso de las
de las funciones
funciones strcpy
strcpy yy strncpy
strncpy
#include
#include <iostream>
<iostream>
#include
#include <string.h>
<string.h>

using
using namespace
namespace std;
std;
int main()//cadena3.cpp
int main()//cadena3.cpp
{{
char
char x[]="Algoritmos
x[]="Algoritmos yy Programacion";
Programacion";
char y[30],z[30];
char y[30],z[30];
cout<<"El
cout<<"El string
string en
en el
el array
array xx es
es ->
-> "<<x;
"<<x;
cout<<"\nEl
cout<<"\nEl string en el array x copiado hacia
string en el array x copiado hacia el
el array
array yy es
es ->
-> ""
<<strcpy(y,x);
<<strcpy(y,x);
strncpy(z,x,12);
strncpy(z,x,12);
z[12]='\0';
z[12]='\0';
cout<<"Parte
cout<<"Parte del
del string
string enen el
el array
array xx copiado
copiado al
al array
array zz es
es ->"
->"
<<z<<endl;
<<z<<endl;

return
return 0;
0;
}}
12 24/04/2025

EJECUCION DEL PROGRAMA:


13 24/04/2025
Ejemplo 4:
//uso de las funciones strcat y strncat
#include <iostream>
#include <string.h>
using namespace std;
int main() //cadena4.cpp
{
char s1[256]="En aquel tiempo, respondiendo Jesús, dijo: Te
alabo, Padre, Señor del cielo y ";
char s2[]=" de la tierra, porque escondiste estas cosas de los
sabios y ";
char s3[]="de los entendidos, y las revelaste a los niños. Mateo
11,25-26";
cout<<" s1 = "<<s1<<endl<<endl;
cout<<" s2= "<<s2<<endl<<endl;
14 24/04/2025
... Continua
strcat(s1,s2);
cout<<"\nConcatenar s2 en s1: ";
cout<<endl<<"s1= "<<s1;
cout<<endl;
cout<<"\nS3= "<<s3;
cout<<"\nConcatenar s3 en s1: ";
strcat(s1,s3);
cout<<endl<<"\ns1= "<<s1;
cout<<endl<<endl;
cout<<"\nParte de la s3 concatenada en s2: ";
strncat(s2,s3,10);
cout<<endl<<s2<<endl<<endl;
return 0;
}
15 24/04/2025

EJECUCION DEL PROGRAMA:


16 24/04/2025
//editor
//editor dede texto
texto sencillo
sencillo que
que lee
lee una
una cadena
cadena yy
//cuenta
//cuenta elel numero
numero dede palabras
palabras enen ella
ella
#include <iostream>
#include <iostream>
using
using namespace
namespace std;
std;
int
int main() //cadena5.cpp
main() //cadena5.cpp
{{
char
char linea[80],c,sig,
linea[80],c,sig, blanco;
blanco;
int
int i=0, numpal;
i=0, numpal;
//lectura
//lectura de de la
la linea
linea de
de texto
texto
cout<<"ingrese
cout<<"ingrese linealinea de
de texto>
texto> ";";
while ((c=cin.get())!='\n')
while ((c=cin.get())!='\n')
{{
linea[i++]=c;
linea[i++]=c;
}}
linea
linea [i++]='\0';
[i++]='\0';
//
// conteo
conteo dede palabras
palabras
numpal=i=0;
numpal=i=0;
blanco='
blanco=' '; ';
c=linea[i];
c=linea[i]; //comienzo
//comienzo dede la
la cadena
cadena
//recorrido de la cadena
//recorrido de la cadena
while
while (c)
(c)
{{
if
if (c!=blanco)
(c!=blanco)
{{
sig=linea[i+1];
sig=linea[i+1];
if
if ((sig==blanco)
((sig==blanco) || || (sig=='\0'))
(sig=='\0'))
++numpal;
++numpal;
}}
c=linea[++i];
c=linea[++i];
}}
cout<<"Texto
cout<<"Texto -> -> "<<linea<<"\nTiene
"<<linea<<"\nTiene "<<numpal<<"
"<<numpal<<" palabras"<<endl;
palabras"<<endl;
return
return 0;
0;
}} Ing. Edgar Ruiz Lizama
17 24/04/2025

EJECUCION DEL PROGRAMA


18 24/04/2025

//
// Escribe
Escribe el
el nombre
nombre ingresado
ingresado caracter
caracter por
por caracter
caracter

#include
#include <iostream>
<iostream>

using
using namespace
namespace std;
std;

int
int main()//
main()// cadena7.cpp
cadena7.cpp
{{
char
char s[]="juan
s[]="juan jose";
jose";
int
int i;
i;
for
for (i=0
(i=0 ;; i<sizeof(s)/sizeof(char);
i<sizeof(s)/sizeof(char); i++)
i++)
cout<<s[i]<<endl;
cout<<s[i]<<endl;

return
return 0;
0;
}}
19 24/04/2025

EJECUCION DEL PROGRAMA:


20 24/04/2025

//
// Utilizacion
Utilizacion strcpy
strcpy yy strcat.
strcat.

#include
#include <iostream>
<iostream>
#include
#include <string.h>
<string.h>
using
using namespace
namespace std;
std;
int
int main(void)
main(void)
{{
char
char destino[25];
destino[25];
char
char *blanco
*blanco == "" ",
", *c
*c == "C++",
"C++", *Compilador
*Compilador == "mingw32-g+
"mingw32-g+
+";
+";
strcpy(destino,
strcpy(destino, Compilador);
Compilador);
strcat(destino,
strcat(destino, blanco);
blanco);
strcat(destino,
strcat(destino, c);c);
cout<<destino<<endl;
cout<<destino<<endl;
return
return 0;
0;
}}
21 24/04/2025

EJECUCION DEL PROGRAMA:


22 24/04/2025

/*muestra
/*muestra como
como el
el usuario
usuario puede
puede definir
definir sus
sus propias
propias funciones
funciones de
de
cadena */
cadena */
#include
#include <iostream>
<iostream> //version
//version 11
const
const int
int MAX
MAX == 80;//funciones
80;//funciones prototipo
prototipo
int
int longcad(char
longcad(char s[]);
s[]);
int
int comparacad(char s1[],
comparacad(char s1[], char
char s2[]);
s2[]);
void
void copiacad(char dest[], char orig[]);
copiacad(char dest[], char orig[]);
using namespace std;
using namespace std;
int
int main()
main() //funcads1.cpp
//funcads1.cpp
{{
char
char buffer[MAX];
buffer[MAX];
buffer[0]='\0';
buffer[0]='\0';
cout<<"<1>
cout<<"<1> longcad(buffer)=
longcad(buffer)= "<<longcad(buffer)<<endl;
"<<longcad(buffer)<<endl;
copiacad(buffer,
copiacad(buffer, "Algoritmos
"Algoritmos yy Programacion");
Programacion");
cout<<"<2> buffer: "<<buffer<<endl;
cout<<"<2> buffer: "<<buffer<<endl;
cout<<"<3>
cout<<"<3> longcad(buffer)=
longcad(buffer)= "<<longcad
"<<longcad (buffer)<<endl;
(buffer)<<endl;
cout<<"<4>
cout<<"<4> comparacad(buffer, Algoritmos yy Programacion)=
comparacad(buffer, Algoritmos Programacion)= ";
";
cout<<comparacad(buffer,"Algoritmos
cout<<comparacad(buffer,"Algoritmos y Programacion")<<endl ;;
y Programacion")<<endl
cout<<"<5>
cout<<"<5> comparacad(buffer,
comparacad(buffer, Algoritmos)=
Algoritmos)= ";";
cout<<comparacad(buffer, "Programacion")<<endl;
cout<<comparacad(buffer, "Programacion")<<endl;
- Continua -
return
return 0;
0; Ing. Edgar Ruiz Lizama
}}
23 24/04/2025

int
int longcad(char
longcad(char s[])
s[])
{{
int
int i=0;
i=0;
while
while (s[i]!=0)
(s[i]!=0)
++i;
++i;
return
return i;i;
}}
int
int comparacad(char
comparacad(char s1[],
s1[], char
char s2[])
s2[])
{{
int
int i=0;
i=0;
for
for ( ;; s1[i]!=0
( s1[i]!=0 &&
&& s1[i]==s2[i];
s1[i]==s2[i]; i++)
i++)
;;
return
return (int)(s1[i]-s2[i]);
(int)(s1[i]-s2[i]);
}}
void
void copiacad(char
copiacad(char dest[],
dest[], char
char orig[])
orig[])
{{
int
int i=0;
i=0;
for(
for( ;; orig[i]!=0
orig[i]!=0 ;; i++)
i++)
dest[i]=orig[i];
dest[i]=orig[i]; //asignar aa dest
//asignar dest el
el caracter
caracter de de orig
orig
dest[i]=0;
dest[i]=0; - Fin -
}} Ing. Edgar Ruiz Lizama
24 24/04/2025

EJECUCION DEL PROGRAMA:


25 24/04/2025

/*muestra
/*muestra como
como el
el usuario
usuario puede
puede definir
definir sus
sus propias
propias funciones
funciones de
de
cadena usa punteros al array de cadena. Version
cadena usa punteros al array de cadena. Version 2 */ 2 */
#include
#include <iostream>
<iostream>
const
const int
int MAX
MAX == 80;
80;
//funciones prototipo
//funciones prototipo
int
int longcad(char
longcad(char *s);
*s);
int
int comparacad(char *s1,
comparacad(char *s1, char
char *s2);
*s2);
void
void copiacad(char *dest, char *orig);
copiacad(char *dest, char *orig);
using
using namespace
namespace std;
std;
int main() //funcads2.cpp
int main() //funcads2.cpp
{{
char
char buffer[MAX];
buffer[MAX];
buffer[0]='\0';
buffer[0]='\0';
cout<<"<1>
cout<<"<1> longcad(buffer)=
longcad(buffer)= "<<longcad(buffer)<<endl;
"<<longcad(buffer)<<endl;
copiacad(buffer,
copiacad(buffer, "Algoritmos yy Programacion");
"Algoritmos Programacion");
cout<<"<2> buffer: "<<buffer<<endl;
cout<<"<2> buffer: "<<buffer<<endl;
cout<<"<3>
cout<<"<3> longcad(buffer)=
longcad(buffer)= "<<longcad
"<<longcad (buffer)<<endl;
(buffer)<<endl;
cout<<"<4>
cout<<"<4> comparacad(buffer, Algoritmos yy Programacion)=
comparacad(buffer, Algoritmos Programacion)= ";
";
cout<<comparacad(buffer,"Algoritmos
cout<<comparacad(buffer,"Algoritmos y Programacion")<<endl ;;
y Programacion")<<endl
cout<<"<5>
cout<<"<5> comparacad(buffer,
comparacad(buffer, Algoritmos)=
Algoritmos)= ";
";
cout<<comparacad(buffer, "Algoritmos")<<endl;
cout<<comparacad(buffer, "Algoritmos")<<endl;
return
return 0;
0;
- Continua - Ing. Edgar Ruiz Lizama
}}
26 24/04/2025

int
int longcad(char
longcad(char *s)*s)
{{
int
int i=0;
i=0;
while
while (s[i]!=0)
(s[i]!=0)
++i;
++i;
return
return i;i;
}}
int
int comparacad(char
comparacad(char *s1,*s1, char
char *s2)
*s2)
{{
int
int i=0;
i=0;
for(
for( ;; s1[i]!=0
s1[i]!=0 &&
&& s1[i]==s2[i];
s1[i]==s2[i]; i++)
i++)
;;
return
return (int)(s1[i]-s2[i]);
(int)(s1[i]-s2[i]);
}}
void
void copiacad(char
copiacad(char *dest,
*dest, char
char *orig)
*orig)
{{
int
int i=0;
i=0;
for(
for( ;; orig[i]!=0
orig[i]!=0 ;; i++)
i++)
dest[i]=orig[i];
dest[i]=orig[i]; //asignar aa dest
//asignar dest el
el caracter
caracter de de orig
orig
dest[i]=0;
dest[i]=0;
}} - Fin - Ing. Edgar Ruiz Lizama
27 24/04/2025

EJECUCION DEL PROGRAMA:


28 24/04/2025

//funciones
//funciones prototipo.
prototipo. Version
Version 33
#include
#include <iostream>
<iostream>
const
const int MAX=80;//funciones
int MAX=80;//funciones prototipo
prototipo
int
int longcad(char
longcad(char *s);
*s);
int
int comparacad(char
comparacad(char *s1,
*s1, char
char *s2);
*s2);
void
void copiacad(char *dest, char *orig);
copiacad(char *dest, char *orig);
using namespace std;
using namespace std;
using
using namespace
namespace std;
std;
int
int main()
main() //funcads3.cpp
//funcads3.cpp
{{
char
char buffer[MAX];
buffer[MAX];
buffer[0]='\0';
buffer[0]='\0';
cout<<"<1>
cout<<"<1> longcad(buffer)=
longcad(buffer)= "<<longcad(buffer)<<endl;
"<<longcad(buffer)<<endl;
copiacad(buffer,
copiacad(buffer, "Algoritmos
"Algoritmos yy Programacion");
Programacion");
cout<<"<2> buffer: "<<buffer<<endl;
cout<<"<2> buffer: "<<buffer<<endl;
cout<<"<3>
cout<<"<3> longcad(buffer)=
longcad(buffer)= "<<longcad
"<<longcad (buffer)<<endl;
(buffer)<<endl;
cout<<"<4>
cout<<"<4> comparacad(buffer, Algoritmos yy Programacion)=
comparacad(buffer, Algoritmos Programacion)= ";
";
cout<<comparacad(buffer,"Algoritmos y Programacion")<<endl;
cout<<comparacad(buffer,"Algoritmos y Programacion")<<endl;
cout<<"<5>
cout<<"<5> comparacad(buffer,
comparacad(buffer, Algoritmos)=
Algoritmos)= ";
";
cout<<comparacad(buffer, "Algoritmos")<<endl;
cout<<comparacad(buffer, "Algoritmos")<<endl;

return
return 0;
0; - Continua - Ing. Edgar Ruiz Lizama
}}
29 24/04/2025

int
int longcad(char
longcad(char *s)*s)
{{
int
int i=0;
i=0;
while(*s++)
while(*s++)
++i;
++i;
return
return i;
i;
}}
int
int comparacad(char
comparacad(char *s1,
*s1, char
char *s2)
*s2)
{{
while(
while( *s1
*s1 &&
&& *s1
*s1 ==*s2)
==*s2)
{{
s1++;
s1++;
s2++;
s2++;
}}
return
return (int)(*s1
(int)(*s1 -- *s2);
*s2);
}}
void
void copiacad(char
copiacad(char *dest,
*dest, char
char *orig)
*orig)
{{
while(*dest++
while(*dest++ == *orig++)
*orig++)
;; - Fin -
}} Ing. Edgar Ruiz Lizama
30 24/04/2025

EJECUCION DEL PROGRAMA


31 24/04/2025

REFERENCIAS
 Deitel H.M. y Deitel P.J., (2009). “Como Programar
en C/C++ ". México, 2da. ed. Prentice Hall: 927p.
 Ruiz Lizama Edgar, (2009). “Programación con C+
+ ". Peru, 1ra. ed. Fondo Editorial UNMSM: 434p.
 Schildt Herbert “C Manual de Referencia” España.
4ta. Edición, Osborne McGraw-Hill (2000) 709p.
 Stroustrup, Bjarne "El Lenguaje de Programación
C++". U.S.A. Addison Wesley Iberoamericana. 710
p. (1993).
 Stroustrup, Bjarne "El Lenguaje de Programación
C++ Edición especial". España. Addison Wesley –
PEARSON EDUCACION S.A. 1050 p. (2002)

También podría gustarte