Está en la página 1de 12

PROGRAMACION DIGITAL MA713-I

200

CADENAS DE CARACTERES

Definición, Funciones Principales

PROGRAMACION DIGITAL MA713-I

Cadenas de Caracteres

201

Una cadena es un arreglo de caracteres. Declaración:

char cadena[#carac]=valor inicial;

Ej:

char cad[30]=Hola Mundo\n;

cad:

H

o

l

a

 

M

u

n

d

o

\n

\0

0

1

2

3

4

5

6

7

8

9

10

11

12 caracteres

4 5 6 7 8 9 10 11 12 car ac ter es El carácter nulo

El carácter nulo (‘\0’) indica el final de la cadena. Una constante cadena se encierra entre dobles comillas.

PROGRAMACION DIGITAL MA713-I

202

Lectura de Cadenas – Caso1

~ Leer ca d
~
Leer
ca d

Lee hasta encontrar espacio o salto de línea.

char cad[30];

Lee hasta encontrar espacio o salto de línea. char cad[30]; ~ scanf( "%s" , cad); //por

~

scanf("%s", cad); //por teclado, sin &

fscanf(g,"%s", cad); //de archivo, sin &

Pantalla (no tiene espacios)

Ingrese cadena: MA713I
Ingrese cadena: MA713I

DATOS.TXT

MA713I
MA713I

PROGRAMACION DIGITAL MA713-I

203

Lectura de Cadenas – Caso1

~ Leer ca d
~
Leer
ca d

Lee hasta encontrar espacio o salto de línea.

char codc[6], sec[2];

encontrar espacio o salto de línea. char codc[6], sec[2]; ~ scanf( "%s %s" ,codc,sec); //por teclado

~

scanf("%s %s",codc,sec);

//por teclado

fscanf(g,"%s %s",codc,sec);//de archivo

Pantalla

Cadena: MA713 I
Cadena: MA713 I

DATOS.TXT

MA713 I
MA713 I

PROGRAMACION DIGITAL MA713-I

204

Lectura de Cadenas – Caso2

Lee hasta encontrar un salto de línea.

~ Leer ca d ~
~
Leer
ca d
~

gets(cad); //por teclado

fgets(cad,#caracteres,g);//de archivo

Pantalla

Alumno: Juan Perez
Alumno: Juan Perez

DATOS.TXT

Juan Perez
Juan Perez

Escritura de Cadenas

char car[30];

PROGRAMACION DIGITAL MA713-I

205

~ Escribir ca d ~
~
Escribir
ca d
~

printf("%s", cad); //en pantalla

fprintf(h,"%s", cad); //en archivo

Pantalla

Alumno= Juan Perez
Alumno= Juan Perez

SALIDA.TXT

Juan Perez
Juan Perez

PROGRAMACION DIGITAL MA713-I

Funciones para Cadenas

206

Se debe incluir en el programa: #include<string.h>

strlen(cad) .- Retorna la longitud de cad.

#include<stdio.h> #include<string.h> int main() { char cad[50]; int n; printf("Alumno: "); gets(cad); n=strlen(cad); printf("Longitud = %d\n",n); system("pause");

}

PROGRAMACION DIGITAL MA713-I

Funciones para Cadenas

207

strcpy(cad1,cad2) .- Copia cad2 en cad1

#include<stdio.h> #include<string.h> int main() { char cad1[50],cad2[50]; printf("Apellidos: "); gets(cad2);

strcpy(cad1,cad2);

printf("Copia = %s\n",cad1); system("pause");

}

PROGRAMACION DIGITAL MA713-I

Funciones de Cadenas

208

strcat(cad1,cad2).- Une cad1 con cad2

#include<stdio.h> #include<string.h> int main() { char cad1[100],cad2[50]; printf("Apellidos: "); gets(cad1); printf("Nombres: "); gets(cad2);

strcat(cad1,cad2);

printf("Alumno = %s\n",cad1); system("pause");

}

PROGRAMACION DIGITAL MA713-I

209

Funciones de Cadenas

strcmp(cad1,cad2)

Retorna:

Compara cad1 con cad2

<0

si cad1<cad2

=0

si cad1=cad2

>0

si cad1>cad2

PROGRAMACION DIGITAL MA713-I

Funciones de Cadenas

210

#include<stdio.h> #include<string.h> int main() { char cad1[100],cad2[50]; int n; printf("Apellidos: "); gets(cad1); printf("Nombres: "); gets(cad2);

n=strcmp(cad1,cad2);

if(n>0) printf("%s>%s\n",cad1,cad2); if(n==0) printf("%s=%s\n",cad1,cad2); if(n<0) printf("%s<%s\n",cad1,cad2); system("pause");

}

Ejercicios

PROGRAMACION DIGITAL MA713-I

211

Dada una cadena leída por teclado, convertir las letras minúsculas a mayúsculas.

Dada una cadena leída por teclado, invertir el orden de las letras de cada palabra.