SlideShare una empresa de Scribd logo
1 de 25
 Una cadena de texto en C se almacena
como un arreglo de caracteres finalizadas
con un carácter nulo (0) de modo que
tendremos que reservar un espacio más de
lo que necesitamos, este carácter especial
se utiliza en todas las operaciones
referentes a cadenas
 Por ejemplo, si queremos pedir un nombre y
saludar al usuario sería:
char texto[40];
printf("Introduce tu nombre: ");
scanf("%s", &texto);
printf("Hola, %sn", texto);
 Podemos leer (o modificar) una de las
letras de una cadena de igual forma
que leemos o modificamos los
elementos de cualquier arreglo, el
primer elemento será texto[0], el
segundo será texto[1] y así
sucesivamente.
 En una cadena que definamos como “char
texto[40]” lo habitual es que realmente no
ocupemos las 39 letras que podríamos
llegar a usar. Si guardamos 9 letras (y el
carácter nulo que marca el final),
tendremos 30 posiciones que no hemos
usado.
 Pero estas 30 posiciones
generalmente contendrán “basura”,
lo que hubiera previamente en esas
posiciones de memoria, porque el
compilador las reserva para nosotros
pero no las “limpia”.
 Para saber cual es la longitud real de
nuestra cadena tenemos dos
opciones:
 Podemos usar un contador que se vaya
incrementando hasta encontrar el
carácter nulo (0) o usar la función strlen
de la librería string.h
 Para saber cual es la longitud real de
nuestra cadena tenemos dos
opciones:
 Podemos usar un contador que se
vaya incrementando hasta encontrar
el carácter nulo (0) o usar la función
strlen de la librería string.h
 Existen otras órdenes que están
diseñadas específicamente diseñadas
para manejar cadenas de texto, y
que nos podrán evitar algunas
limitaciones que tendríamos con scanf
 Para leer una cadena de texto,
usaríamos la orden “gets”, así:
gets(texto);
 De igual modo, para escribir un texto en
pantalla podemos usar “puts”, que
muestra la cadena de texto y avanza a
la línea siguiente:
puts(texto);
 Cuando queremos dar a una variable el valor
de otra, normalmente usamos construcciones
como a = 2, o como a = b.
 Pero en el caso de las cadenas de texto, esta
NO es la forma correcta, no podemos hacer
algo como saludo="hola" ni algo como
texto1=texto2.
 La forma correcta de guardar en una
cadena de texto un cierto valor es:
strcpy (destino, origen);
 Es decir, debemos usar una función llamada
“strcpy” (string copy, copiar cadena), que se
encuentra también en “string.h”.
 Es nuestra responsabilidad que en la cadena
de destino haya suficiente espacio reservado
para copiar lo que queremos.
 Si no es así, estaremos sobreescribiendo
direcciones de memoria en las que no
sabemos qué hay
 Para evitar este problema, tenemos una
forma de indicar que queremos copiar sólo
los primeros n bytes de origen, usando la
función “strncpy”, así:
strncpy (destino, origen, n);
 Podemos añadir una cadena al final de otra
(concatenarla), con
strcat (cadenaDestino, cadenaParaAgregar);
 Es decir el contenido de cadenaParaAgregar
se añadirá a continuación de cadenaDestino
y este será su nuevo valor
 Un programa que te pida una frase y la muestre en
pantalla sin espacios. Por ejemplo, si la frase es “Hola,
como estás”, debería aparecer en pantalla
“Hola,comoestás”.
 Un programa que nos pida que tecleemos una frase y
guarde en otra variable sólo las 4 primeras letras.
 Un programa que nos pida nuestro nombre, nuestro
apellido y cree una nueva cadena de texto que
contenga los dos, separados por un espacio:
 Para comparar dos cadenas
alfabéticamente (para ver si son iguales o
para poder ordenarlas, por ejemplo), usamos
strcmp(cad1, cad2);
 Esta función devuelve un número
entero, que será:
 0 si ambas cadenas son iguales.
 Un número negativo, si cadena1 <
cadena2.
 Un número positivo, si cad1 > cad2.
 La función sprintf crea una cadena de
texto a partir de una especificación de
formato y unos ciertos parámetros.
 A diferencia de printf (que manda su
salida a la pantalla) es que sprintf la
deja guardada en una cadena
 Nos puede resultar cómoda cuando
queramos formatear texto que no
vaya a aparecer directamente en
pantalla de texto, sino que lo vayamos
a enviar a un fichero, o que queramos
mostrar en pantalla gráfica.
 Por otra parte sscanf es similar a
scanf, con la diferencia de que los
valores para las variables no se
leen desde el teclado, sino desde
una cadena de texto.
strcpy(cadena, "20 30");
sscanf(cadena, "%d %d",
&primerNum, &segundoNum);
 sscanf devuelve el numero de
valores que realmente se han
detectado, de modo que
podemos comprobar si ha
tomado todos los que
esperábamos o alguno menos.
if (sscanf(cadena, "%d %d",
&primerNum, &segundoNum)<2)
printf("Debia teclear dos
numeros");

Más contenido relacionado

La actualidad más candente (20)

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
 
Ejercicios de visual
Ejercicios de visualEjercicios de visual
Ejercicios de visual
 
Strcat
StrcatStrcat
Strcat
 
Strcmp
StrcmpStrcmp
Strcmp
 
Introduccion a Python por Facundo Batista
Introduccion a Python por Facundo BatistaIntroduccion a Python por Facundo Batista
Introduccion a Python por Facundo Batista
 
Comandos unix
Comandos unixComandos unix
Comandos unix
 
Manejo de Switch()
Manejo de Switch()Manejo de Switch()
Manejo de Switch()
 
Filtros+sort
Filtros+sort Filtros+sort
Filtros+sort
 
Trabajo digital.
Trabajo digital.Trabajo digital.
Trabajo digital.
 
Vb script hx-c-wd
Vb script hx-c-wdVb script hx-c-wd
Vb script hx-c-wd
 
Clase vb6 ejercicio heladeria
Clase vb6 ejercicio heladeriaClase vb6 ejercicio heladeria
Clase vb6 ejercicio heladeria
 
Cadenas
CadenasCadenas
Cadenas
 
Comando grep y expresiones regulares
Comando grep y expresiones regularesComando grep y expresiones regulares
Comando grep y expresiones regulares
 
Instrucciones basicas
Instrucciones basicasInstrucciones basicas
Instrucciones basicas
 
Emu8086
Emu8086Emu8086
Emu8086
 
Bibliotecas que existen_para_c++_ (2)
Bibliotecas que existen_para_c++_ (2)Bibliotecas que existen_para_c++_ (2)
Bibliotecas que existen_para_c++_ (2)
 
Strwlr
StrwlrStrwlr
Strwlr
 
Libreria c++
Libreria c++Libreria c++
Libreria c++
 
Emulador de ensamblador EMU8086.
Emulador de ensamblador EMU8086.Emulador de ensamblador EMU8086.
Emulador de ensamblador EMU8086.
 
Emu 8086
Emu 8086Emu 8086
Emu 8086
 

Destacado

Colour personality
Colour personalityColour personality
Colour personalityKyra Ell
 
Conceptos básicos
Conceptos básicosConceptos básicos
Conceptos básicosciberosv
 
Se procurer une automobile dans la region de Laval
 Se procurer une automobile dans la region de Laval Se procurer une automobile dans la region de Laval
Se procurer une automobile dans la region de Lavalmeekgraveyard8638
 
Algortitmos de ordenamiento y busqueda
Algortitmos de ordenamiento y busquedaAlgortitmos de ordenamiento y busqueda
Algortitmos de ordenamiento y busquedaciberosv
 
VaLUENTiS delivering world class healthcare 210610 final
VaLUENTiS delivering world class healthcare 210610 finalVaLUENTiS delivering world class healthcare 210610 final
VaLUENTiS delivering world class healthcare 210610 finalnjhceo01
 

Destacado (6)

Colour personality
Colour personalityColour personality
Colour personality
 
Conceptos básicos
Conceptos básicosConceptos básicos
Conceptos básicos
 
Se procurer une automobile dans la region de Laval
 Se procurer une automobile dans la region de Laval Se procurer une automobile dans la region de Laval
Se procurer une automobile dans la region de Laval
 
Algortitmos de ordenamiento y busqueda
Algortitmos de ordenamiento y busquedaAlgortitmos de ordenamiento y busqueda
Algortitmos de ordenamiento y busqueda
 
VaLUENTiS delivering world class healthcare 210610 final
VaLUENTiS delivering world class healthcare 210610 finalVaLUENTiS delivering world class healthcare 210610 final
VaLUENTiS delivering world class healthcare 210610 final
 
Degree Cert_Hor Chee Heng_UMP
Degree Cert_Hor Chee Heng_UMP Degree Cert_Hor Chee Heng_UMP
Degree Cert_Hor Chee Heng_UMP
 

Similar a Cadenas

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
 
Lectura de cadenas en c
Lectura de cadenas en cLectura de cadenas en c
Lectura de cadenas en cjbersosa
 
Capitulo 8 Cadenas
Capitulo 8  CadenasCapitulo 8  Cadenas
Capitulo 8 Cadenasguest506dc9
 
18 tipos-de-datos
18 tipos-de-datos18 tipos-de-datos
18 tipos-de-datosAndy T
 
Guia De Practica 3
Guia De Practica 3Guia De Practica 3
Guia De Practica 3louis
 
6.2 cadenas de caracteres
6.2 cadenas de caracteres6.2 cadenas de caracteres
6.2 cadenas de caracteresSNPP
 
Fpr Tema6 www.fresymetal.com
Fpr Tema6 www.fresymetal.comFpr Tema6 www.fresymetal.com
Fpr Tema6 www.fresymetal.comFresyMetal
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacionEdison Cruz
 
RegExp JavaScript Expresiones Regulares
RegExp JavaScript Expresiones RegularesRegExp JavaScript Expresiones Regulares
RegExp JavaScript Expresiones RegularesIsabel Gómez
 
08 strings o cadenas
08 strings o cadenas08 strings o cadenas
08 strings o cadenashorusblom
 
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 javaRobert Wolf
 

Similar a Cadenas (20)

Apunte cadenas
Apunte cadenasApunte cadenas
Apunte cadenas
 
Pe15 cadenacaracteres
Pe15 cadenacaracteresPe15 cadenacaracteres
Pe15 cadenacaracteres
 
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
 
Lectura de cadenas en c
Lectura de cadenas en cLectura de cadenas en c
Lectura de cadenas en c
 
Capitulo 8 Cadenas
Capitulo 8  CadenasCapitulo 8  Cadenas
Capitulo 8 Cadenas
 
18 tipos-de-datos
18 tipos-de-datos18 tipos-de-datos
18 tipos-de-datos
 
Expocicion sabado
Expocicion sabadoExpocicion sabado
Expocicion sabado
 
Guia De Practica 3
Guia De Practica 3Guia De Practica 3
Guia De Practica 3
 
Clase 10 expresiones regulares
Clase 10 expresiones regularesClase 10 expresiones regulares
Clase 10 expresiones regulares
 
DATOS LENGUAJE C
DATOS LENGUAJE CDATOS LENGUAJE C
DATOS LENGUAJE C
 
6.2 cadenas de caracteres
6.2 cadenas de caracteres6.2 cadenas de caracteres
6.2 cadenas de caracteres
 
!Prograc8
!Prograc8!Prograc8
!Prograc8
 
Fpr Tema6 www.fresymetal.com
Fpr Tema6 www.fresymetal.comFpr Tema6 www.fresymetal.com
Fpr Tema6 www.fresymetal.com
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacion
 
Librerias de dev c++
Librerias de dev c++Librerias de dev c++
Librerias de dev c++
 
Funciones cadena
Funciones cadenaFunciones cadena
Funciones cadena
 
RegExp JavaScript Expresiones Regulares
RegExp JavaScript Expresiones RegularesRegExp JavaScript Expresiones Regulares
RegExp JavaScript Expresiones Regulares
 
08 strings o cadenas
08 strings o cadenas08 strings o cadenas
08 strings o cadenas
 
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
 

Más de ciberosv

Funciones - Ambito de variables
Funciones - Ambito de variablesFunciones - Ambito de variables
Funciones - Ambito de variablesciberosv
 
Funciones - Conceptos básicos
Funciones - Conceptos básicosFunciones - Conceptos básicos
Funciones - Conceptos básicosciberosv
 
Multidimensionales
MultidimensionalesMultidimensionales
Multidimensionalesciberosv
 
Sentencia Do...While
Sentencia  Do...WhileSentencia  Do...While
Sentencia Do...Whileciberosv
 
Sentencia For
Sentencia ForSentencia For
Sentencia Forciberosv
 
Sentencia While
Sentencia WhileSentencia While
Sentencia Whileciberosv
 
Datos caracter
Datos caracterDatos caracter
Datos caracterciberosv
 
Comentarios
ComentariosComentarios
Comentariosciberosv
 
Tipo de datos enteros
Tipo de datos enterosTipo de datos enteros
Tipo de datos enterosciberosv
 
Sentencia de Selección
Sentencia de SelecciónSentencia de Selección
Sentencia de Selecciónciberosv
 
Sentencia Condicional
Sentencia CondicionalSentencia Condicional
Sentencia Condicionalciberosv
 
Operadores molde
Operadores moldeOperadores molde
Operadores moldeciberosv
 
Tipo de datos reales
Tipo de datos realesTipo de datos reales
Tipo de datos realesciberosv
 
Identificadores
IdentificadoresIdentificadores
Identificadoresciberosv
 
Sistemas de Numeración
Sistemas de NumeraciónSistemas de Numeración
Sistemas de Numeraciónciberosv
 
Unidades de Medida
Unidades de MedidaUnidades de Medida
Unidades de Medidaciberosv
 
Representación de la información
Representación de la informaciónRepresentación de la información
Representación de la informaciónciberosv
 

Más de ciberosv (19)

Archivos
ArchivosArchivos
Archivos
 
Funciones - Ambito de variables
Funciones - Ambito de variablesFunciones - Ambito de variables
Funciones - Ambito de variables
 
Funciones - Conceptos básicos
Funciones - Conceptos básicosFunciones - Conceptos básicos
Funciones - Conceptos básicos
 
Multidimensionales
MultidimensionalesMultidimensionales
Multidimensionales
 
Sentencia Do...While
Sentencia  Do...WhileSentencia  Do...While
Sentencia Do...While
 
Sentencia For
Sentencia ForSentencia For
Sentencia For
 
Sentencia While
Sentencia WhileSentencia While
Sentencia While
 
Datos caracter
Datos caracterDatos caracter
Datos caracter
 
Comentarios
ComentariosComentarios
Comentarios
 
Tipo de datos enteros
Tipo de datos enterosTipo de datos enteros
Tipo de datos enteros
 
Sentencia de Selección
Sentencia de SelecciónSentencia de Selección
Sentencia de Selección
 
Sentencia Condicional
Sentencia CondicionalSentencia Condicional
Sentencia Condicional
 
Operadores molde
Operadores moldeOperadores molde
Operadores molde
 
Tipo de datos reales
Tipo de datos realesTipo de datos reales
Tipo de datos reales
 
Identificadores
IdentificadoresIdentificadores
Identificadores
 
Hardware
HardwareHardware
Hardware
 
Sistemas de Numeración
Sistemas de NumeraciónSistemas de Numeración
Sistemas de Numeración
 
Unidades de Medida
Unidades de MedidaUnidades de Medida
Unidades de Medida
 
Representación de la información
Representación de la informaciónRepresentación de la información
Representación de la información
 

Último

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Último (20)

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

Cadenas

  • 1.
  • 2.  Una cadena de texto en C se almacena como un arreglo de caracteres finalizadas con un carácter nulo (0) de modo que tendremos que reservar un espacio más de lo que necesitamos, este carácter especial se utiliza en todas las operaciones referentes a cadenas
  • 3.  Por ejemplo, si queremos pedir un nombre y saludar al usuario sería: char texto[40]; printf("Introduce tu nombre: "); scanf("%s", &texto); printf("Hola, %sn", texto);
  • 4.  Podemos leer (o modificar) una de las letras de una cadena de igual forma que leemos o modificamos los elementos de cualquier arreglo, el primer elemento será texto[0], el segundo será texto[1] y así sucesivamente.
  • 5.  En una cadena que definamos como “char texto[40]” lo habitual es que realmente no ocupemos las 39 letras que podríamos llegar a usar. Si guardamos 9 letras (y el carácter nulo que marca el final), tendremos 30 posiciones que no hemos usado.
  • 6.  Pero estas 30 posiciones generalmente contendrán “basura”, lo que hubiera previamente en esas posiciones de memoria, porque el compilador las reserva para nosotros pero no las “limpia”.
  • 7.  Para saber cual es la longitud real de nuestra cadena tenemos dos opciones:  Podemos usar un contador que se vaya incrementando hasta encontrar el carácter nulo (0) o usar la función strlen de la librería string.h
  • 8.  Para saber cual es la longitud real de nuestra cadena tenemos dos opciones:  Podemos usar un contador que se vaya incrementando hasta encontrar el carácter nulo (0) o usar la función strlen de la librería string.h
  • 9.  Existen otras órdenes que están diseñadas específicamente diseñadas para manejar cadenas de texto, y que nos podrán evitar algunas limitaciones que tendríamos con scanf
  • 10.  Para leer una cadena de texto, usaríamos la orden “gets”, así: gets(texto);
  • 11.  De igual modo, para escribir un texto en pantalla podemos usar “puts”, que muestra la cadena de texto y avanza a la línea siguiente: puts(texto);
  • 12.  Cuando queremos dar a una variable el valor de otra, normalmente usamos construcciones como a = 2, o como a = b.  Pero en el caso de las cadenas de texto, esta NO es la forma correcta, no podemos hacer algo como saludo="hola" ni algo como texto1=texto2.
  • 13.  La forma correcta de guardar en una cadena de texto un cierto valor es: strcpy (destino, origen);  Es decir, debemos usar una función llamada “strcpy” (string copy, copiar cadena), que se encuentra también en “string.h”.
  • 14.  Es nuestra responsabilidad que en la cadena de destino haya suficiente espacio reservado para copiar lo que queremos.  Si no es así, estaremos sobreescribiendo direcciones de memoria en las que no sabemos qué hay
  • 15.  Para evitar este problema, tenemos una forma de indicar que queremos copiar sólo los primeros n bytes de origen, usando la función “strncpy”, así: strncpy (destino, origen, n);
  • 16.  Podemos añadir una cadena al final de otra (concatenarla), con strcat (cadenaDestino, cadenaParaAgregar);  Es decir el contenido de cadenaParaAgregar se añadirá a continuación de cadenaDestino y este será su nuevo valor
  • 17.  Un programa que te pida una frase y la muestre en pantalla sin espacios. Por ejemplo, si la frase es “Hola, como estás”, debería aparecer en pantalla “Hola,comoestás”.  Un programa que nos pida que tecleemos una frase y guarde en otra variable sólo las 4 primeras letras.  Un programa que nos pida nuestro nombre, nuestro apellido y cree una nueva cadena de texto que contenga los dos, separados por un espacio:
  • 18.  Para comparar dos cadenas alfabéticamente (para ver si son iguales o para poder ordenarlas, por ejemplo), usamos strcmp(cad1, cad2);
  • 19.  Esta función devuelve un número entero, que será:  0 si ambas cadenas son iguales.  Un número negativo, si cadena1 < cadena2.  Un número positivo, si cad1 > cad2.
  • 20.  La función sprintf crea una cadena de texto a partir de una especificación de formato y unos ciertos parámetros.  A diferencia de printf (que manda su salida a la pantalla) es que sprintf la deja guardada en una cadena
  • 21.  Nos puede resultar cómoda cuando queramos formatear texto que no vaya a aparecer directamente en pantalla de texto, sino que lo vayamos a enviar a un fichero, o que queramos mostrar en pantalla gráfica.
  • 22.  Por otra parte sscanf es similar a scanf, con la diferencia de que los valores para las variables no se leen desde el teclado, sino desde una cadena de texto.
  • 23. strcpy(cadena, "20 30"); sscanf(cadena, "%d %d", &primerNum, &segundoNum);
  • 24.  sscanf devuelve el numero de valores que realmente se han detectado, de modo que podemos comprobar si ha tomado todos los que esperábamos o alguno menos.
  • 25. if (sscanf(cadena, "%d %d", &primerNum, &segundoNum)<2) printf("Debia teclear dos numeros");