322cadenas de Caracteres
322cadenas de Caracteres
322cadenas de Caracteres
CADENAS DE
CARACTERES
Profesor(a): Alumno(a):
Mia khalifa Michell Manzanillo
INTRODUCCIÓN
#include<stdio.h>
#include<string.h>
int main()
{
char texto1[]="corta";
char texto2[]="mediana";
char texto3[]="larguisima";
strcpy(texto2,texto1);
printf("%s\n",texto2);
strcpy(texto2,texto3);
printf("%s\n",texto2);
getch();
return 0;
}
Operaciones con cadenas:
Entrada/salida de cadenas.
Las cadenas se muestran con printf y la adecuada marca de formato sin que se
presenten dificultades especiales. Lo que sí resulta problemático es leer
cadenas. La función scanf presenta una seria limitación: solo puede leer
((palabras)), no ((frases)). Ello nos obliga a presentar una nueva función
(gets).
#include <stdio.h>
#define MAXLON 80
int main()
{
char cadena[MAXLON+1] = "una cadena";
El resultado es el siguiente:
#include <stdio.h>
#define MAXLON 80
int main() {
char cadena[MAXLON+1] = "una cadena";
#include <stdio.h>
#define MAXLON 80
int main(void) {
char cadena[MAXLON+1] = "una cadena";
int i;
i = 0;
while (cadena[i] != ’\0’) {
printf ("%c\n", cadena[i]);
i++;
}
return 0;
}
#include <stdio.h>
#define MAXLON 80
int main(void) {
char cadena[MAXLON+1];
Debe notar que con las cadenas no hay que poner el caracter & del
identificador al usar scanf. Recordar: cadena[0] es un char, pero cadena, sin
mas, es la dirección de memoria en la que empieza el vector de caracteres. Al
ejecutar el programa introduciendo la cadena "una" se obtiene el siguiente
resultado por pantalla.
Hay un problema práctico con scanf: solo lee una (palabra), es decir, una
secuencia de caracteres no blancos. Si al ejecutar el programa tecleamos un
par de palabras (una prueba), sólo se muestra la primera. Por pantalla se
obtendría lo siguiente:
La función gets lee todos los caracteres que hay hasta encontrar un salto de
línea. Dichos caracteres, excepto el salto de línea, se almacenan a partir de la
dirección de memoria que se indique como argumento y se añade un
terminador.
#include <stdio.h>
#define MAXLON 11
int main(void)
{
char a[MAXLON+1], b[MAXLON+1];
#include <stdio.h>
#define MAXLINEA 80
#define MAXFRASE 40
int main()
{
int a, b;
char frase[MAXFRASE+1];
char linea[MAXLINEA+1];
Este es el resultado:
Ejemplo:
#include <stdio.h>
#define MAXLON 80
int main(void)
{
char a[MAXLON+1] = "una";
char b[MAXLON+1] = "cadena";
char c[MAXLON+1];
Para efectuar una copia de una cadena, has de hacerlo carácter a carácter, o en
su defecto usar las función strcpy correspondiente incluidas en <string.h>
#include <string.h>
#define MAXLON 10 ***
int main()
{
char original[MAXLON+1] = "cadena";
char copia[MAXLON+1];
int i;
Se Debe notar que el bucle recorre los 10 caracteres que realmente hay en
original pero, de hecho, solo se requieren copiar los caracteres que hay hasta
el terminador, incluyéndole a él.
#define MAXLON 10
int main()
{
char original[MAXLON+1] = "cadena";
char copia[MAXLON+1];
int i;
#include <stdio.h>
#define MAXLON 80
int main(void)
{
char a[MAXLON+1];
int i;
#include <stdio.h>
#include <string.h>
#define MAXLON 80
int main()
{
char a[MAXLON+1];
int i, contador=0, longitud;
Concatenación:
#include <stdio.h>
#define MAXLON 80
int main(void)
{
char a[MAXLON+1], b[MAXLON+1];
int longa, longb;
int i;