SlideShare uma empresa Scribd logo
1 de 4
Baixar para ler offline
CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M06 MICROCONTROLADORES I
Laboratorio: D-19
Duración: 2 Hs TIPOS DE DATOS ESTRUCTURADOS
6.2. Cadenas de Caracteres
Objetivos
1. Entender el funcionamiento de cadenas de caracteres.
Las cadenas de caracteres son vectores de tipo carácter (char) que reciben un trata-
miento especial para simular el tipo de datos “string”.
Para que un vector de caracteres pueda ser considerado como una cadena de carac-
teres, 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, debe-
rá 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”:
57 7. Tipos de datos estructurados: Tablas
for (b= 0; b< DIM; b++)
for (c= 0; c< DIM; c++)
tabla random[a][b][c] = rand();
/* Muestra series de DIM en DIM elementos. */
for (a= 0; a< DIM; a++)
for (b= 0; b < DIM; b++)
f
for (c= 0; c < DIM; c++)
f
printf( "nn tabla[%d][%d][%d] = ", a, b, c );
printf( "%d", tabla random[a][b][c] );
g
printf( "nnPulse ENTER para seguir" );
getchar();
g
g
7.4 Cadenas de caracteres
Las cadenas de caracteres son vectores de tipo car´acter (char) que reciben un tratamiento especial para
simular el tipo de datos “string”, presente en otros lenguajes de programaci´on.
Para que un vector de caracteres pueda ser considerado como una cadena de caracteres, el ´ultimo
de los elementos ´utiles del vector debe ser el car´acter nulo (c´odigo ASCII 0). Seg´un esto, si se quiere
declarar una cadena formada por N caracteres, deber´a declararse un vector con N + 1 elementos de
tipo car´acter. Por ejemplo, la declaraci´on char cadena[6]; reserva suficiente espacio en memoria
para almacenar una cadena de 5 caracteres, como la palabra "casco":
10 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´acter. Por ejemplo, la cadena constante "H" tiene muy poco que ver con el
car´acter constante ’H’, si observamos la representaci´on interna de ambos:
0H"H" H’H’
7.4.1 Asignaci´on
Mientras que la consulta de elementos de una cadena de caracteres se realiza de la misma forma que
con los vectores, las asignaciones tienen ciertas peculiaridades.
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:
57 7. Tipos de datos estructurados: Tablas
for (b= 0; b< DIM; b++)
for (c= 0; c< DIM; c++)
tabla random[a][b][c] = rand();
/* Muestra series de DIM en DIM elementos. */
for (a= 0; a< DIM; a++)
for (b= 0; b < DIM; b++)
f
for (c= 0; c < DIM; c++)
f
printf( "nn tabla[%d][%d][%d] = ", a, b, c );
printf( "%d", tabla random[a][b][c] );
g
printf( "nnPulse ENTER para seguir" );
getchar();
g
g
7.4 Cadenas de caracteres
Las cadenas de caracteres son vectores de tipo car´acter (char) que reciben un tratamiento especial para
simular el tipo de datos “string”, presente en otros lenguajes de programaci´on.
Para que un vector de caracteres pueda ser considerado como una cadena de caracteres, el ´ultimo
de los elementos ´utiles del vector debe ser el car´acter nulo (c´odigo ASCII 0). Seg´un esto, si se quiere
declarar una cadena formada por N caracteres, deber´a declararse un vector con N + 1 elementos de
tipo car´acter. Por ejemplo, la declaraci´on char cadena[6]; reserva suficiente espacio en memoria
para almacenar una cadena de 5 caracteres, como la palabra "casco":
10 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´acter. Por ejemplo, la cadena constante "H" tiene muy poco que ver con el
car´acter constante ’H’, si observamos la representaci´on interna de ambos:
0H"H" H’H’
7.4.1 Asignaci´on
Mientras que la consulta de elementos de una cadena de caracteres se realiza de la misma forma que
con los vectores, las asignaciones tienen ciertas peculiaridades.
6.2.1. Asignación
Mientras que la consulta de elementos de una cadena de caracteres se realiza de la
misma forma que con los vectores, las asignaciones tienen ciertas peculiaridades.
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’;
Pedro Ramírez <pedroramirez22@gmail.com> 1
CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M06 MICROCONTROLADORES I
Laboratorio: D-19
Duración: 2 Hs TIPOS DE DATOS ESTRUCTURADOS
cadena[3] = ’c’;
cadena[4] = ’o’;
cadena[5] = ’0’;
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";
Finalmente, la inicialización anterior puede hacerse sin necesidad de especificar el
tamaño del vector correspondiente. En este caso, el compilador se encarga de calcularlo
automáticamente, reservando espacio de memoria suficiente para almacenar la cadena,
incluyendo el carácter nulo al final. Así pues, la siguiente declaración reserva memoria
para almacenar 6 caracteres y los inicializa adecuadamente con las letras de la palabra
NURIA:
char nombre[] = "NURIA";
6.2.2. 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 vacia */
Pedro Ramírez <pedroramirez22@gmail.com> 2
CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M06 MICROCONTROLADORES I
Laboratorio: D-19
Duración: 2 Hs TIPOS DE DATOS ESTRUCTURADOS
59 7. Tipos de datos estructurados: Tablas
10 2 3 4 5 6 7 8 9 10 11
U n a f r a s e 0
cadena[0] = ’0’;
"Una frase"
""
10 2 3 4 5 6 7 8 9 10 11
0 n a f r a s e 0
7.4.2 Manejo de cadenas de caracteres
Aunque C no incorpora en su definici´on operadores para el manejo de cadenas de caracteres, todo com-
pilador de C proporciona una librer´ıa est´andar (string.h) con funciones para facilitar su utilizaci´on.
Destacar algunas de ellas:
strlen para obtener la longitud de la cadena, sin contar el car´acter nulo,
strcpy para copiar una cadena en otra,
strcat para concatenar dos cadenas,
strcmp para comparar dos cadenas, etc.
Para m´as informaci´on sobre estas y otras funciones, consultar el ap´endice B.
Entrada y salida
En cuanto a la entrada y salida de cadenas de caracteres, existe un formato especial %s que puede
utilizarse en las funciones scanf y printf. Por ejemplo, la siguiente sentencia leer´a una cadena de
caracteres en la variable cad. S´olo se asignar´an caracteres mientras no sean caracteres blancos, tabu-
ladores o saltos de l´ınea. Por lo tanto, el empleo de %s s´olo tendr´a sentido para la lectura de palabras.
Adem´as del formato %s existen los formatos %[ˆabc] y %[abc], que permiten leer respectivamente
una cadena de caracteres hasta encontrar alg´un car´acter del conjunto fa, b, cg, o bien hasta no encontrar
un caracter del conjunto fa, b, cg. En cualquier caso el car´acter del conjunto fa, b, cg no es le´ıdo. Ver
el ap´endice B para m´as informaci´on sobre el empleo de scanf y la lectura de cadenas de caracteres.
char cad[20];
. . .
scanf("%s", cad);
N´otese que, en el ejemplo, no se ha antepuesto el s´ımbolo & a la variable cad. Por el momento,
teng´amoslo en mente y esperemos hasta el cap´ıtulo 9 para comprender a qu´e se debe este hecho.
La librer´ıa est´andar de entrada y salida (stdio.h) proporciona adem´as las funciones gets y
puts, que permiten leer de teclado y mostrar por pantalla una cadena de caracteres completa, respec-
tivamente (ver el ap´endice B para m´as detalles).
6.2.3. 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 fun-
ciones 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.
Entrada y salida En cuanto a la entrada y salida de cadenas de caracteres, existe un
formato especial %s que puede utilizarse en las funciones scanf y printf. Por ejemplo, la
siguiente sentencia leerá una cadena de caracteres en la variable cad. Sólo se asignarán
caracteres mientras no sean caracteres blancos, tabuladores o saltos de linea. Por lo tanto,
el empleo de %s sólo tendrá sentido para la lectura de palabras.
Por lo tanto, el empleo de %s sólo tendrá sentido para la lectura de palabras. Además
del formato %s existen los formatos %[∧abc] y %[abc], que permiten leer respectivamente
una cadena de caracteres hasta encontrar algún carácter del conjunto f a, b, c g , o bien
hasta no encontrar un carácter del conjunto {a, b, c}. En cualquier caso el carácter del
conjunto {a, b, c} no es leído
char cad[20];
. . .
scanf("%s", cad);
Nótese que, en el ejemplo, no se ha antepuesto el símbolo & a la variable cad.
Ejemplos Para finalizar, veamos un par de ejemplos de manejo de cadenas de carac-
teres.
El siguiente programa cuenta el número de veces que se repite una palabra en una
frase. El programa emplea la función de comparación de cadenas strcmp. Dicha función
devuelve 0 en caso de que las cadenas comparadas sean iguales.
Pedro Ramírez <pedroramirez22@gmail.com> 3
CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M06 MICROCONTROLADORES I
Laboratorio: D-19
Duración: 2 Hs TIPOS DE DATOS ESTRUCTURADOS
#include <stdio.h>
#include <string.h>
#define MAXLIN 100
void main()
{
char pal[MAXLIN];
char palfrase[MAXLIN];
char c;
int total = 0;
printf("nPALABRA:");
scanf("%s", pal);
printf("nFRASE:");
c = ’ ’;
while (c != ’n’)
{
scanf("%s%c", palfrase, &c );
if(strcmp(pal, palfrase) == 0)
total++;
}
printf("nLa palabra %s aparece %d veces.", pal, total);
}
6.2.4. Ejercicios
1. 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 ’.’.
2. Escribir un programa que decida si una palabra es palídroma o no. La palabra se
almacena en un vector de caracteres acabado en ’.’.
3. Escribir un programa que lea una frase del teclado y cuente los espacios en blanco.
4. Escribir un programa que, dada una cadena de caracteres y un entero correspon-
diente a una posición válida dentro de ella, genere una nueva cadena de caracteres
que contenga todos los caracteres a la izquierda de dicha posición, pero en orden
inverso.
5. Escribir un programa que, dada una cadena de caracteres, la limpie de caracteres
blancos. Por ejemplo, la cadena “Esto es una frase" deberá transformarse en
“Estoesunafrase". Escribir dos versiones, una utilizando una cadena auxiliar y
otra versión que realice los cambios sobre la misma cadena.
6. Escribir un programa que lea dos cadenas de caracteres, las compare e informe de
si son iguales o diferentes. No usar la función de la librería estándar strcmp.
Pedro Ramírez <pedroramirez22@gmail.com> 4

Mais conteúdo relacionado

Mais procurados

Caracteres y Cadenas en C
Caracteres y Cadenas en CCaracteres y Cadenas en C
Caracteres y Cadenas en CRonny Parra
 
Capitulo 8 Cadenas
Capitulo 8  CadenasCapitulo 8  Cadenas
Capitulo 8 Cadenasguest506dc9
 
Modelos de redes completo
Modelos de redes   completoModelos de redes   completo
Modelos de redes completoPavel Aliaga
 
Cadenas De Caracteres
Cadenas De CaracteresCadenas De Caracteres
Cadenas De CaracteresMauricio
 
Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programaciondiego MC
 
Tipos de datos para C++
Tipos de datos para C++Tipos de datos para C++
Tipos de datos para C++Bryangio2002
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacionEdison Cruz
 

Mais procurados (12)

Caracteres y Cadenas en C
Caracteres y Cadenas en CCaracteres y Cadenas en C
Caracteres y Cadenas en C
 
Capitulo 8 Cadenas
Capitulo 8  CadenasCapitulo 8  Cadenas
Capitulo 8 Cadenas
 
Clase1 c
Clase1 cClase1 c
Clase1 c
 
Modelos de redes completo
Modelos de redes   completoModelos de redes   completo
Modelos de redes completo
 
CARACTERES Y CADENAS LENGUAJE C
CARACTERES Y CADENAS LENGUAJE CCARACTERES Y CADENAS LENGUAJE C
CARACTERES Y CADENAS LENGUAJE C
 
METODOS DE ENCRIPTACIÓN
METODOS DE ENCRIPTACIÓNMETODOS DE ENCRIPTACIÓN
METODOS DE ENCRIPTACIÓN
 
Funciones str
Funciones strFunciones str
Funciones str
 
Cadenas De Caracteres
Cadenas De CaracteresCadenas De Caracteres
Cadenas De Caracteres
 
Apuntadores
Apuntadores Apuntadores
Apuntadores
 
Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacion
 
Tipos de datos para C++
Tipos de datos para C++Tipos de datos para C++
Tipos de datos para C++
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacion
 

Semelhante a MICROCONTROLADORES CADENAS

Fpr Tema6 www.fresymetal.com
Fpr Tema6 www.fresymetal.comFpr Tema6 www.fresymetal.com
Fpr Tema6 www.fresymetal.comFresyMetal
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadenaTensor
 
18 tipos-de-datos
18 tipos-de-datos18 tipos-de-datos
18 tipos-de-datosAndy T
 
Cadena Juan Bastidas
Cadena Juan BastidasCadena Juan Bastidas
Cadena Juan BastidasJuan Bastidas
 
Tema7 dinamicas
Tema7 dinamicasTema7 dinamicas
Tema7 dinamicaslabebelo
 
Cadena De Caracteres_adrian
Cadena De Caracteres_adrianCadena De Caracteres_adrian
Cadena De Caracteres_adrianAdrian Sanchez
 
Guia De Practica 3
Guia De Practica 3Guia De Practica 3
Guia De Practica 3louis
 
Articulacion ii -_cadenas
Articulacion ii -_cadenasArticulacion ii -_cadenas
Articulacion ii -_cadenasLuis Fernando
 
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
 
08 strings o cadenas
08 strings o cadenas08 strings o cadenas
08 strings o cadenashorusblom
 
Fpr Tema 4 www.fresymetal.com
Fpr Tema 4 www.fresymetal.comFpr Tema 4 www.fresymetal.com
Fpr Tema 4 www.fresymetal.comFresyMetal
 

Semelhante a MICROCONTROLADORES CADENAS (20)

Pe15 cadenacaracteres
Pe15 cadenacaracteresPe15 cadenacaracteres
Pe15 cadenacaracteres
 
Fpr Tema6 www.fresymetal.com
Fpr Tema6 www.fresymetal.comFpr Tema6 www.fresymetal.com
Fpr Tema6 www.fresymetal.com
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
 
Asignacion
AsignacionAsignacion
Asignacion
 
Cadenas de Caracteres
Cadenas de CaracteresCadenas de Caracteres
Cadenas de Caracteres
 
18 tipos-de-datos
18 tipos-de-datos18 tipos-de-datos
18 tipos-de-datos
 
Cadena Juan Bastidas
Cadena Juan BastidasCadena Juan Bastidas
Cadena Juan Bastidas
 
Programacion
ProgramacionProgramacion
Programacion
 
Programacion
ProgramacionProgramacion
Programacion
 
Tema7 dinamicas
Tema7 dinamicasTema7 dinamicas
Tema7 dinamicas
 
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
 
Guia De Practica 3
Guia De Practica 3Guia De Practica 3
Guia De Practica 3
 
Articulacion ii -_cadenas
Articulacion ii -_cadenasArticulacion ii -_cadenas
Articulacion ii -_cadenas
 
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
 
08 strings o cadenas
08 strings o cadenas08 strings o cadenas
08 strings o cadenas
 
Funciones cadena
Funciones cadenaFunciones cadena
Funciones cadena
 
Cadenas
CadenasCadenas
Cadenas
 
Fpr Tema 4 www.fresymetal.com
Fpr Tema 4 www.fresymetal.comFpr Tema 4 www.fresymetal.com
Fpr Tema 4 www.fresymetal.com
 

Mais de SNPP

RR00X_RESUMEN.pdf
RR00X_RESUMEN.pdfRR00X_RESUMEN.pdf
RR00X_RESUMEN.pdfSNPP
 
RR_TAYI.pdf
RR_TAYI.pdfRR_TAYI.pdf
RR_TAYI.pdfSNPP
 
1. panel de le ds
1. panel de le ds1. panel de le ds
1. panel de le dsSNPP
 
7. incubadora de huevos
7. incubadora de huevos7. incubadora de huevos
7. incubadora de huevosSNPP
 
6. visualizacion remota de consumo de agua en tiempo real
6. visualizacion remota de consumo de agua en tiempo real6. visualizacion remota de consumo de agua en tiempo real
6. visualizacion remota de consumo de agua en tiempo realSNPP
 
5. alimentador de animales domesticos smart feeder
5. alimentador de animales domesticos smart feeder5. alimentador de animales domesticos smart feeder
5. alimentador de animales domesticos smart feederSNPP
 
3. radar medidor de velocidad
3. radar medidor de velocidad3. radar medidor de velocidad
3. radar medidor de velocidadSNPP
 
2. soft starter monofasico
2. soft starter monofasico2. soft starter monofasico
2. soft starter monofasicoSNPP
 
Operadores y expresiones
Operadores y expresionesOperadores y expresiones
Operadores y expresionesSNPP
 
6.1 vectores
6.1 vectores6.1 vectores
6.1 vectoresSNPP
 
5.5 instruccion for
5.5 instruccion for5.5 instruccion for
5.5 instruccion forSNPP
 
5.4 instruccion do-while
5.4 instruccion do-while5.4 instruccion do-while
5.4 instruccion do-whileSNPP
 
5.3 instruccion while
5.3 instruccion while5.3 instruccion while
5.3 instruccion whileSNPP
 
5.2 instruccion switch
5.2  instruccion switch5.2  instruccion switch
5.2 instruccion switchSNPP
 
5.1 instruccion if-else
5.1 instruccion if-else5.1 instruccion if-else
5.1 instruccion if-elseSNPP
 
4. entrada y salida de datos
4. entrada y salida de datos4. entrada y salida de datos
4. entrada y salida de datosSNPP
 
3.6 funciones de biblioteca
3.6 funciones de biblioteca3.6 funciones de biblioteca
3.6 funciones de bibliotecaSNPP
 
3.5 operador condicional
3.5 operador condicional3.5 operador condicional
3.5 operador condicionalSNPP
 
2.10 entrada y salida
2.10 entrada y salida2.10 entrada y salida
2.10 entrada y salidaSNPP
 
2.9 variables
2.9 variables2.9 variables
2.9 variablesSNPP
 

Mais de SNPP (20)

RR00X_RESUMEN.pdf
RR00X_RESUMEN.pdfRR00X_RESUMEN.pdf
RR00X_RESUMEN.pdf
 
RR_TAYI.pdf
RR_TAYI.pdfRR_TAYI.pdf
RR_TAYI.pdf
 
1. panel de le ds
1. panel de le ds1. panel de le ds
1. panel de le ds
 
7. incubadora de huevos
7. incubadora de huevos7. incubadora de huevos
7. incubadora de huevos
 
6. visualizacion remota de consumo de agua en tiempo real
6. visualizacion remota de consumo de agua en tiempo real6. visualizacion remota de consumo de agua en tiempo real
6. visualizacion remota de consumo de agua en tiempo real
 
5. alimentador de animales domesticos smart feeder
5. alimentador de animales domesticos smart feeder5. alimentador de animales domesticos smart feeder
5. alimentador de animales domesticos smart feeder
 
3. radar medidor de velocidad
3. radar medidor de velocidad3. radar medidor de velocidad
3. radar medidor de velocidad
 
2. soft starter monofasico
2. soft starter monofasico2. soft starter monofasico
2. soft starter monofasico
 
Operadores y expresiones
Operadores y expresionesOperadores y expresiones
Operadores y expresiones
 
6.1 vectores
6.1 vectores6.1 vectores
6.1 vectores
 
5.5 instruccion for
5.5 instruccion for5.5 instruccion for
5.5 instruccion for
 
5.4 instruccion do-while
5.4 instruccion do-while5.4 instruccion do-while
5.4 instruccion do-while
 
5.3 instruccion while
5.3 instruccion while5.3 instruccion while
5.3 instruccion while
 
5.2 instruccion switch
5.2  instruccion switch5.2  instruccion switch
5.2 instruccion switch
 
5.1 instruccion if-else
5.1 instruccion if-else5.1 instruccion if-else
5.1 instruccion if-else
 
4. entrada y salida de datos
4. entrada y salida de datos4. entrada y salida de datos
4. entrada y salida de datos
 
3.6 funciones de biblioteca
3.6 funciones de biblioteca3.6 funciones de biblioteca
3.6 funciones de biblioteca
 
3.5 operador condicional
3.5 operador condicional3.5 operador condicional
3.5 operador condicional
 
2.10 entrada y salida
2.10 entrada y salida2.10 entrada y salida
2.10 entrada y salida
 
2.9 variables
2.9 variables2.9 variables
2.9 variables
 

Último

Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxEtse9
 
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRASESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRASenriquezerly87
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Sistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesSistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesjohannyrmnatejeda
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaANDECE
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCANDECE
 
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...Arquitecto Alejandro Gomez cornejo muñoz
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdffredyflores58
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdfRicardoRomeroUrbano
 
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptxluiscisnerosayala23
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOCamiloSaavedra30
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosOscarGonzalez231938
 
4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptxEfrain Yungan
 
Procedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnasProcedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnasAhmedMontaoSnchez1
 

Último (20)

Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptx
 
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRASESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
ESTRUCTURAS EN LA SUPERVISIÓN Y RESIDENCIA DE OBRAS
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Linea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptxLinea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptx
 
Sistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajesSistema de Base de Datos para renta de trajes
Sistema de Base de Datos para renta de trajes
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de Almería
 
presentación manipulación manual de cargas sunafil
presentación manipulación manual de cargas sunafilpresentación manipulación manual de cargas sunafil
presentación manipulación manual de cargas sunafil
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRC
 
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
 
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
01 COSTOS UNITARIOS Y PRESUPUESTO DE OBRA-EXPEDIENTE TECNICO DE OBRA.pptx
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTOESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
ESTUDIO TÉCNICO DEL PROYECTO DE CREACION DE SOFTWARE PARA MANTENIMIENTO
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneos
 
4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx
 
Procedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnasProcedimientos constructivos superestructura, columnas
Procedimientos constructivos superestructura, columnas
 

MICROCONTROLADORES CADENAS

  • 1. CENTRO TECNOLÓGICO DE AVANZADA AREA DE MECATRÓNICA Código: M06 MICROCONTROLADORES I Laboratorio: D-19 Duración: 2 Hs TIPOS DE DATOS ESTRUCTURADOS 6.2. Cadenas de Caracteres Objetivos 1. Entender el funcionamiento de cadenas de caracteres. Las cadenas de caracteres son vectores de tipo carácter (char) que reciben un trata- miento especial para simular el tipo de datos “string”. Para que un vector de caracteres pueda ser considerado como una cadena de carac- teres, 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, debe- rá 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”: 57 7. Tipos de datos estructurados: Tablas for (b= 0; b< DIM; b++) for (c= 0; c< DIM; c++) tabla random[a][b][c] = rand(); /* Muestra series de DIM en DIM elementos. */ for (a= 0; a< DIM; a++) for (b= 0; b < DIM; b++) f for (c= 0; c < DIM; c++) f printf( "nn tabla[%d][%d][%d] = ", a, b, c ); printf( "%d", tabla random[a][b][c] ); g printf( "nnPulse ENTER para seguir" ); getchar(); g g 7.4 Cadenas de caracteres Las cadenas de caracteres son vectores de tipo car´acter (char) que reciben un tratamiento especial para simular el tipo de datos “string”, presente en otros lenguajes de programaci´on. Para que un vector de caracteres pueda ser considerado como una cadena de caracteres, el ´ultimo de los elementos ´utiles del vector debe ser el car´acter nulo (c´odigo ASCII 0). Seg´un esto, si se quiere declarar una cadena formada por N caracteres, deber´a declararse un vector con N + 1 elementos de tipo car´acter. Por ejemplo, la declaraci´on char cadena[6]; reserva suficiente espacio en memoria para almacenar una cadena de 5 caracteres, como la palabra "casco": 10 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´acter. Por ejemplo, la cadena constante "H" tiene muy poco que ver con el car´acter constante ’H’, si observamos la representaci´on interna de ambos: 0H"H" H’H’ 7.4.1 Asignaci´on Mientras que la consulta de elementos de una cadena de caracteres se realiza de la misma forma que con los vectores, las asignaciones tienen ciertas peculiaridades. 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: 57 7. Tipos de datos estructurados: Tablas for (b= 0; b< DIM; b++) for (c= 0; c< DIM; c++) tabla random[a][b][c] = rand(); /* Muestra series de DIM en DIM elementos. */ for (a= 0; a< DIM; a++) for (b= 0; b < DIM; b++) f for (c= 0; c < DIM; c++) f printf( "nn tabla[%d][%d][%d] = ", a, b, c ); printf( "%d", tabla random[a][b][c] ); g printf( "nnPulse ENTER para seguir" ); getchar(); g g 7.4 Cadenas de caracteres Las cadenas de caracteres son vectores de tipo car´acter (char) que reciben un tratamiento especial para simular el tipo de datos “string”, presente en otros lenguajes de programaci´on. Para que un vector de caracteres pueda ser considerado como una cadena de caracteres, el ´ultimo de los elementos ´utiles del vector debe ser el car´acter nulo (c´odigo ASCII 0). Seg´un esto, si se quiere declarar una cadena formada por N caracteres, deber´a declararse un vector con N + 1 elementos de tipo car´acter. Por ejemplo, la declaraci´on char cadena[6]; reserva suficiente espacio en memoria para almacenar una cadena de 5 caracteres, como la palabra "casco": 10 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´acter. Por ejemplo, la cadena constante "H" tiene muy poco que ver con el car´acter constante ’H’, si observamos la representaci´on interna de ambos: 0H"H" H’H’ 7.4.1 Asignaci´on Mientras que la consulta de elementos de una cadena de caracteres se realiza de la misma forma que con los vectores, las asignaciones tienen ciertas peculiaridades. 6.2.1. Asignación Mientras que la consulta de elementos de una cadena de caracteres se realiza de la misma forma que con los vectores, las asignaciones tienen ciertas peculiaridades. 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’; Pedro Ramírez <pedroramirez22@gmail.com> 1
  • 2. CENTRO TECNOLÓGICO DE AVANZADA AREA DE MECATRÓNICA Código: M06 MICROCONTROLADORES I Laboratorio: D-19 Duración: 2 Hs TIPOS DE DATOS ESTRUCTURADOS cadena[3] = ’c’; cadena[4] = ’o’; cadena[5] = ’0’; 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"; Finalmente, la inicialización anterior puede hacerse sin necesidad de especificar el tamaño del vector correspondiente. En este caso, el compilador se encarga de calcularlo automáticamente, reservando espacio de memoria suficiente para almacenar la cadena, incluyendo el carácter nulo al final. Así pues, la siguiente declaración reserva memoria para almacenar 6 caracteres y los inicializa adecuadamente con las letras de la palabra NURIA: char nombre[] = "NURIA"; 6.2.2. 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 vacia */ Pedro Ramírez <pedroramirez22@gmail.com> 2
  • 3. CENTRO TECNOLÓGICO DE AVANZADA AREA DE MECATRÓNICA Código: M06 MICROCONTROLADORES I Laboratorio: D-19 Duración: 2 Hs TIPOS DE DATOS ESTRUCTURADOS 59 7. Tipos de datos estructurados: Tablas 10 2 3 4 5 6 7 8 9 10 11 U n a f r a s e 0 cadena[0] = ’0’; "Una frase" "" 10 2 3 4 5 6 7 8 9 10 11 0 n a f r a s e 0 7.4.2 Manejo de cadenas de caracteres Aunque C no incorpora en su definici´on operadores para el manejo de cadenas de caracteres, todo com- pilador de C proporciona una librer´ıa est´andar (string.h) con funciones para facilitar su utilizaci´on. Destacar algunas de ellas: strlen para obtener la longitud de la cadena, sin contar el car´acter nulo, strcpy para copiar una cadena en otra, strcat para concatenar dos cadenas, strcmp para comparar dos cadenas, etc. Para m´as informaci´on sobre estas y otras funciones, consultar el ap´endice B. Entrada y salida En cuanto a la entrada y salida de cadenas de caracteres, existe un formato especial %s que puede utilizarse en las funciones scanf y printf. Por ejemplo, la siguiente sentencia leer´a una cadena de caracteres en la variable cad. S´olo se asignar´an caracteres mientras no sean caracteres blancos, tabu- ladores o saltos de l´ınea. Por lo tanto, el empleo de %s s´olo tendr´a sentido para la lectura de palabras. Adem´as del formato %s existen los formatos %[ˆabc] y %[abc], que permiten leer respectivamente una cadena de caracteres hasta encontrar alg´un car´acter del conjunto fa, b, cg, o bien hasta no encontrar un caracter del conjunto fa, b, cg. En cualquier caso el car´acter del conjunto fa, b, cg no es le´ıdo. Ver el ap´endice B para m´as informaci´on sobre el empleo de scanf y la lectura de cadenas de caracteres. char cad[20]; . . . scanf("%s", cad); N´otese que, en el ejemplo, no se ha antepuesto el s´ımbolo & a la variable cad. Por el momento, teng´amoslo en mente y esperemos hasta el cap´ıtulo 9 para comprender a qu´e se debe este hecho. La librer´ıa est´andar de entrada y salida (stdio.h) proporciona adem´as las funciones gets y puts, que permiten leer de teclado y mostrar por pantalla una cadena de caracteres completa, respec- tivamente (ver el ap´endice B para m´as detalles). 6.2.3. 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 fun- ciones 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. Entrada y salida En cuanto a la entrada y salida de cadenas de caracteres, existe un formato especial %s que puede utilizarse en las funciones scanf y printf. Por ejemplo, la siguiente sentencia leerá una cadena de caracteres en la variable cad. Sólo se asignarán caracteres mientras no sean caracteres blancos, tabuladores o saltos de linea. Por lo tanto, el empleo de %s sólo tendrá sentido para la lectura de palabras. Por lo tanto, el empleo de %s sólo tendrá sentido para la lectura de palabras. Además del formato %s existen los formatos %[∧abc] y %[abc], que permiten leer respectivamente una cadena de caracteres hasta encontrar algún carácter del conjunto f a, b, c g , o bien hasta no encontrar un carácter del conjunto {a, b, c}. En cualquier caso el carácter del conjunto {a, b, c} no es leído char cad[20]; . . . scanf("%s", cad); Nótese que, en el ejemplo, no se ha antepuesto el símbolo & a la variable cad. Ejemplos Para finalizar, veamos un par de ejemplos de manejo de cadenas de carac- teres. El siguiente programa cuenta el número de veces que se repite una palabra en una frase. El programa emplea la función de comparación de cadenas strcmp. Dicha función devuelve 0 en caso de que las cadenas comparadas sean iguales. Pedro Ramírez <pedroramirez22@gmail.com> 3
  • 4. CENTRO TECNOLÓGICO DE AVANZADA AREA DE MECATRÓNICA Código: M06 MICROCONTROLADORES I Laboratorio: D-19 Duración: 2 Hs TIPOS DE DATOS ESTRUCTURADOS #include <stdio.h> #include <string.h> #define MAXLIN 100 void main() { char pal[MAXLIN]; char palfrase[MAXLIN]; char c; int total = 0; printf("nPALABRA:"); scanf("%s", pal); printf("nFRASE:"); c = ’ ’; while (c != ’n’) { scanf("%s%c", palfrase, &c ); if(strcmp(pal, palfrase) == 0) total++; } printf("nLa palabra %s aparece %d veces.", pal, total); } 6.2.4. Ejercicios 1. 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 ’.’. 2. Escribir un programa que decida si una palabra es palídroma o no. La palabra se almacena en un vector de caracteres acabado en ’.’. 3. Escribir un programa que lea una frase del teclado y cuente los espacios en blanco. 4. Escribir un programa que, dada una cadena de caracteres y un entero correspon- diente a una posición válida dentro de ella, genere una nueva cadena de caracteres que contenga todos los caracteres a la izquierda de dicha posición, pero en orden inverso. 5. Escribir un programa que, dada una cadena de caracteres, la limpie de caracteres blancos. Por ejemplo, la cadena “Esto es una frase" deberá transformarse en “Estoesunafrase". Escribir dos versiones, una utilizando una cadena auxiliar y otra versión que realice los cambios sobre la misma cadena. 6. Escribir un programa que lea dos cadenas de caracteres, las compare e informe de si son iguales o diferentes. No usar la función de la librería estándar strcmp. Pedro Ramírez <pedroramirez22@gmail.com> 4