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

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
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
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
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 

Último (20)

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
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
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
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 

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");