Tipos de Datos y Funciones de Las Bibliotecas en C++

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 16

Hannsel Estuardo Cordon Ac Carnet: 0902 13 1018 TIPOS DE DATOS Hay dos clases de tipos de datos: tipos fundamentales

y tipos derivados. Los tipos de datos fundamentales. Tipo entero: representa nmeros enteros con o sin signo, que estarn compuestos por los dgitos del 0 al 9, pudiendo ser precedidos por los signos + o -. La estructura seria la siguiente: int nombre_variable = valor; Por ejemplo: int edad = 24; Tipo real: Se emplean para representar nmeros reales (con decimales). Para definir datos reales se antepone la palabra reservada float al identificador de la variable La estructura seria la siguiente: float identificador = valor; Por ejemplo: float numero3 = 123.43; Tipo carcter: Este tipo de datos se emplea para representar un carcter perteneciente a un determinado cdigo utilizado por el ordenador (normalmente el cdigo ASCII). Para representar este tipo de dato se antepone la palabra reservada char al identificador de la variable Estructura Char identificador = valor; Por ejemplo: char letra=a; Tipo cadena de caracteres: una cadena de caracteres es un nmero de caracteres consecutivos (incluso ninguno) encerrado entre unos delimitadores determinados, que en el lenguaje C son las comillas dobles. Para definir variables de tipo cadena, estas se definen como vectores de caracteres, esto es, anteponiendo la palabra reservada char al identificador de la variable, y despus entre corchetes la longitud mxima de cadena.

Hannsel Estuardo Cordon Ac Carnet: 0902 13 1018 Estructura Char identificador[cantidad] = mensaje ; Por ejemplo: char cadena[20] = Hola mundo; En la siguiente tabla se hace un resumen de los distintos tipos de datos:

Tipo de dato Entero Real Carcter Cadena de carcter

Palabra reservada Int Float Char Char

Ejemplo Int numero=0; Float numero=12.2; Char letra = a; Char palabra[10] = HOLA;

A continuacin se muestra una tabla con estos especificadores de formato dependiendo del tipo de dato a los que representan: Tipo de dato Int Float Char Char [n] Especificadores formato %d %f %c %s deComentario Entero con signo Real con signo carcter Cadena de caracteres

Tipos Datos Derivados En C existen algunos otros tipos de datos muy utilizados y que se pueden considerar derivados de los anteriores. Punteros CONCEPTO DE PUNTERO O APUNTADOR El valor de cada variable est almacenado en un lugar determinado de la memoria, caracterizado por una direccin (que se suele expresar con un nmero hexadecimal). El ordenador mantiene una tabla de direcciones as pues, un puntero es una variable que puede contener la direccin de otra variable. Por supuesto, los punteros estn almacenados en algn lugar de la memoria y tienen su propia direccin.

Hannsel Estuardo Cordon Ac Carnet: 0902 13 1018 OPERADORES DIRECCIN (&) E INDIRECCIN (*) El lenguaje C dispone del operador direccin (&) que permite hallar la direccin de la variable a la que se aplica. Un puntero es una verdadera variable, y por tanto puede cambiar de valor, es decir, puede cambiar la variable a la que apunta. Para acceder al valor depositado en la zona de memoria a la que apunta un puntero se debe utilizar el operador indireccin (*). Por ejemplo, supngase las siguientes declaraciones y sentencias, int i, j, *p; // p es un puntero a int p = &i; // p contiene la direccin de i *p = 10; // i toma el valor 10 p = &j; // p contiene ahora la direccin de j *p = -2; // j toma el valor -2 Las constantes y las expresiones no tienen direccin, por lo que no se les puede aplicar el operador (&). Tampoco puede cambiarse la direccin de una variable. Los valores posibles para un puntero son las direcciones posibles de memoria. Un puntero puede tener valor 0 ARITMTICA DE PUNTEROS Como ya se ha visto, los punteros son unas variables un poco especiales, ya que guardan informacin no slo de la direccin a la que apuntan, sino tambin del tipo de variable almacenado en esa direccin. Esto implica que no van a estar permitidas las operaciones que no tienen sentido con direcciones de variables, como multiplicar o dividir, pero s otras como sumar o restar. Adems estas operaciones se realizan de un modo correcto, pero que no es el ordinario. As, la sentencia: p = p+1; Tabla de direcciones. Variable Direccin de memoria a b c p1 p2 p 00FA:0000 00FA:0002 00FA:0004 00FA:0006 00FA:000A 00FA:000E

Hannsel Estuardo Cordon Ac Carnet: 0902 13 1018 El lenguaje C, C++ contiene numerosas funciones, cuando se emplean funciones de esta biblioteca estandar, se incrementa la transportabilidad de los programas. Las funciones estandar se dividen en grupos, todas las funciones que pertenecen al mismo grupo estan declaradas en el archivo de cabecera (aquel que dice xxx.h), la letra "h" significa header en ingls y es lo que se llama cabecera. Para incluir alguna funcin perteneciente a estas cabeceras debemos escribir lneas de cdigo como se muestra de ejemplo: #include He disenado esta tabla para que estudiemos las bibliotecas de funciones, obviamente son las que he encontrado en mis libros y sistemas. BIBLIOTECAS Y DESCRIPCIONES DE USO Nombre de Descripcion Biblioteca assert.h alloc.h ctype.h dir.h errno.h float.h limits.h math.h setjmp.h signal.h stdarg.h stdef.h stdio.h stlib.h Es proporcionar una definicion de la macro assert, que imprime un mensaje de error y aborta el programa Existen funciones para asignar, liberar memoria, u obtener informacion de bloques de memoria. Son funciones que nos permiten conocer la naturaleza de un caracter, o bien para convertir de mayusculas a minusculas y viceversa; y valores enteros a codigos ASCII. Esto permite ordenar, crear, modificar, mover y eliminar directorios Representa los numeros de error, despues que ocurre un error se puede consultar el valor de la varianble del sistema deerrno para obtener mas informacion sobre ese error. Define los limites de los tipos de coma flotante Define los limites de los diferentes tipos de enteros Contiene las funciones matematicas estandar utilizadas en C y C++ Define el tipo de jmp_buf para algunas funciones. Contiene funciones de estado. Define funciones que pueden ser llamadas con diferentes numeros de argumentos, de modo que se pueda escribir f(a) y f(a,b). Se definen algunos tipos especiales Incorporan las funciones de Entrada - Salida E/S estandar, tipos y macros Declara funciones que son utiles para diferentes propositos, en especial de busqueda y ordenacion.

Hannsel Estuardo Cordon Ac Carnet: 0902 13 1018 string.h time.h Este archivo contiene funciones para manejo de cadenas de caracteres. Contiene funciones relativas a fechas y horas

Funciones Encontradas en las Bibliotecas Nombr e de # Tipo funci n 1 abs(i) int Bibliot eca a la cual Sintaxis perten ece stdlib.h int abs(int i); math.h math.h

Descripcin

Ejemplo

Devuelve el valor x = abs(-7) // x es 7 absoluto de i // //

2 acos(d) double 3 asin(d) double

double Devuelve el arco angulo = acos(0.5); acos(double d); coseno de d angulo devuelto es phi/3 double asin(double d); Devuelve el arco angulo = asin(0.707); seno de d aproximadamente phi/4

4 atan(d) double

Devuelve la arco tangente de d. double Calcula el arco atan(double d); tangente del math.h angulo atan(1.0); // angulo long double argumento x. es phi/4 tanl(long double Requiere el d); llamado de la biblioteca complex.h double Devuelve el arco math.h atan(double d1, angulo = atan(y, x) tangente de d1/d2 double d2); Convierte la cadena s a una cantidad de doble char precisin. Requiere el llamdo de la biblioteca math.h double x; char *cad_dbl = "200.85"; ... x=atof(cad_dbl); // convierte la cadena "200.85" a valor real

atan(d1 double , d2)

6 atof(s) double

double stdlib.h atof(const *cadena)

7 atoi(s) int

Convierte la cadena s a un entero. La cadena debe int atoi(const stdlib.h tener el siguiente char *cadena) formato: [espacio en blanco][signo][ddd] (siendo obligatorio

int i; char *cad_ent="123"; ... i=atoi(cad_ent); //convierte la cadena "123" al entero 123

Hannsel Estuardo Cordon Ac Carnet: 0902 13 1018 los digitos decimales). Convierte la cadena s a un entero largo. La cadena debe tener el siguiente long atol(const stdlib.h formato: char *cadena); [espacio en blanco][signo][ddd] (siendo obligatorio los digitos decimales).

8 atol(s) long

long int i; char cad_ent="9876543"; ... i=atol(cad_ent); //convierte la cadena "9876543" al entero largo

Reserva memoria para una formacin de n elementos , cada malloc. uno de s bytes. h y Devuelve un stdlib.h void puntero al principio long calloc( void(pun 9 o bien *calloc(size_t n, del espacio buffer=(long *) n, s) tero) alloc.h size_t s); reservado. sizeof(long)); y Si no existente stdlib.h bastante espacio para el nuevo bloque o bien n o s es 0, calloc devuelve nulo. 1 ceil(d) 0 double ceil(double d);

*buffer calloc(40,

double

math.h

Devuelve un valor redondeado por redondeo=ceil(5.1); exceso al //redondeo es 6 siguiente entero mayor el coseno_x=cos(1.6543)

1 cos(d) double 1

double cos(double d); Devuelve math.h complex coseno de d cos(complex d);

1 cosh(d double 2 )

double Devuelve el cos(double d); d=1.00; math.h coseno hiperblico complex printf("d=%f.\n\n,d); de d cos(complex d); Devuelve la diferencia de double tiempo 11(hora2) difftime(time_t time.h 12(hora1) , donde hora2, time_t 11 y 12 hora1) representan el tiempo time_t inicio, clrscrl(); inicio=time(NULL); delay(5000) fin=time(NULL) print("Diferencia segundos: fin;

difftim 1 e(11, double 3 12)

en %f\n",

Hannsel Estuardo Cordon Ac Carnet: 0902 13 1018 transcurrido difftime(inicio,fin)); despues de un tiempo base (ver funcin time) Cierra todos los archivos y buffers y termina el exit(int programa. El valor exit(0); de u es asignado por la funcion para indicar el estado de terminacin.

1 exit(u) void 4

stdlib.h

void estado)

1 exp(d) double 5

Eleve e a la potencia d double (e=2,7182818... es exp(double d); la base del math.h complex sistema de exp(complex d) logaritmos naturales (neperianos)) math.h double fabs(double d); int *f);

d=100.00; y=exp(d); printf("El exponencial x=%f.\n\n",y);

de

1 fabs(d) double 6 1 fclose(f int 7 )

Devuelve el valor y=fabs(-7.25); // y vale 7.25 absoluto de d

stdio.h

Cierra el archivo f. Devuelve el valor fclose(FILE 0 si el archivo se int fclose(FILE "archivo"); ha cerrado con exito.

1 feof(f) 8

int

Determina si se ha encontrado un fin de archivo. si es stdio.h int feof(FILE *f); asi, devuelve un feof(fichen); valor distinto de cero, en otro caso devuelve 0 stdio.h int fgetc(FILE f); Lee un caracter c+fgetc(fp) del archivo f

1 fgetc(f) int 9

Lee una cadena s, 2 fegts(s, char(pun char *fgets(char stdio.h con i caracteres, fgets(caddemo, 80, fp); 0 i, f) tero) s, int s, FILE *f); del archivo f 2 floor(d) double 1 double floor(double d); Devuelve un valor redondeado por defecto al entero x=floor(6.25); // x vale 6 menor mas cercano

math.h

2 fmod(d double 2 1, d2)

double Devuelve el resto resto=fmod(5.0,2.0); // resto math.h fmod(double d1, de d1/d2 (con el igual a 1.0 double d2); mismo signo que

Hannsel Estuardo Cordon Ac Carnet: 0902 13 1018 d1) Abre un archivo llamado s1, del tipo s2. Devuelve un puntero al archivo. * Mo Accion do "r" Abre para lectura

Abre un archivo "w" vacio para escritura "a" Abre para escritura al final del archivo

Abre para "r+" lectura/escri tura if FILE Abre un ((corriente2=fopen("datos"," 2 fopen( file(punt *fopen(const stdio.h W+"))==NULL 3 s1, s2) ero) char *s1, const "w+ archivo vacio para printf("El archivo...no se ha char *s2) " lectura/escri abierto \n"); tura Abre para "a+" lectura y anadir Abre un archivo "rb" binario para lectura. Abre un "wb archivo " binario para escritura Abre un archivo "ab" binario para anadir Abre un "rb+ archivo " binario para lectura/escri

Hannsel Estuardo Cordon Ac Carnet: 0902 13 1018 tura. Abre un archivo "wb binario para +" lectura/escri tura Abre o crea un archivo "ab binario para +" lectura/escri tura 2 fprintf(f int 4 , ...) 2 fputc(c int 5 , f) 2 fputs(s int 6 , f) int fprintf(FILE *f, const char stdio.h *formato [,arg,...]); stdio.h int fputc(int FILE *f); c, Escribe datos en el archivo f (el fprintf(f1, "El resultado es resto de los %f\n",result); argumentos Escribe caracter archivo f en un el fputc(*(p++), stdout);

Escribe una int fputs(const cadena de fputs("esto es una prueba", stdio.h char *cad, FILE caracteres en el f1); *f) archivo f Lee i2 elementos, size_t fread(void cada uno de *b, size_t t, fread(buf, strlen(msg)+1, 1, stdio.h tamano i1 bytes, size_t n, FILE flujo); desde el archivo f *f); hasta la cadena s Libera un bloque malloc. de memoria void free(void h o reservada cuyo *dir_memoria); stdlib.h principio esta indicado por p. char *cad; // asignar memoria a la cadena cad=(char *)malloc(50); ... free(cad); // liberar memoria

fread(s 2 , i1, i2, int 7 f)

2 free(p) void 8

2 fscanf( int 9 f, ...)

int fscanf(FILE Lee datos del *f, const char math.h archivo f ( el resto fscanf(flujo, %s%f, cad, &f); *formato, [, de los argumentos direccion,... ]); Mueve el puntero al archivo f una distancia de 1 bytes desde la int fseek(FILE *f, posicion i (i puede fseek(f1,OL,SEEK_SET); // stdio.h long desplaza, representar el ir al principio int origen); principio del archivo, la posicion actual del puntero o el fin del

3 fseek(f, int 0 l, i)

Hannsel Estuardo Cordon Ac Carnet: 0902 13 1018 archivo. Notas Origen SEEK_ SET SEEK_ CUR SEEK_ END Signific ado Principi o de archivo Posicio n actual puntero Final del archivo

3 ftell(f) 1

long int

Devuelve la long int posicion actual del stdio.h ftell(fichen) ftell(FILE *f); puntero dentro del archivo f size_t fwrite(const void stdio.h *p, size_t i1, size_t i2, FILE *f); stdio.h int getc(FILE *f); Escribe i2 elementos, cada uno de tamano 1 num=fwrite(lista,sizeof(char bytes, desde la ),25,flujo); cadena s hasta el archivo f Lee un caracter del archivo f while(c=getc(fx) print } !=EOF { ("%c",c);

fwrite(s 3 , i1, i2, int 2 f)

3 getc(f) int 3 3 getcha int 4 r( )

Lee un caracter int c; desde el stdio.h int getchar(void); while((*c=getchar()) != '\n') dispostivo de print ("%c",c); entrada estandar

Lee una cadena de caracteres 3 char(pun char *gets(char gets(s) stdio.h desde el gets(nombre); 5 tero) *cad); dispositivo de entrada estandar Determina si el argumento es alfanumerico. isalnum(int Devuelve un valor disitinto de cero si es cierto; en otro caso devuelve 0 carac=getch(); if (isalnum(carac)) print("%c letra|digito \n",carac); else printf("%c no letra|digito \n", carac);

3 isalnu 6 m(c)

int

ctype. int h c);

3 isalpha int 7 (c)

ctype. Determina si el int c; int isalpha(int c); h argumento es if (isalpha(c)) printf("%c es

Hannsel Estuardo Cordon Ac Carnet: 0902 13 1018 alfabetico. letra\n",c); Devuelve un valor distinto de cero si es cierto; en otro caso devuelve 0. Determina si el argumento es un caracter ASCII. int c; Devuelve un valor if (isascii(c)) printf('%c es un disitinto de cero si ascii\n",c) es cierto; en otro caso devuelve 0

3 isascii( int 8 c)

ctype. int isascii(int c); h

3 iscntrl( int 9 c)

Determina si el argumento es un caracter ASCII de ctype. control. Devuelve if(iscntrl(c)) printf"%c es un int isacntrl(int c); h un valor distinto de caracter de control\n",c); cero si es cierto; en otro caso devuelve 0 Determina si el numero es un digito decimal. if(isdigit(c)) printf"%c es un Devuelve un valor digito\n",c); disitinto de cero si es cierto; en otro caso devuelve 0

4 isdigit( int 0 c)

ctype. int isdigit(int c); h

4 isgrap int 1 h(c)

Determina si el argumento es un caracter ASCII grafico (hex 0x21 if(isgraph(c)) printf"%c es ctype. 0x7e; octal 041 int isgraph(int c); un caracter imprimible(no h 176). Devuelve un espacio)\n",c); valor distinto de cero si es cierto; en otro caso devuelve 0 Determina si el argumento es ua minuscula. ctype. if(islower(c)) printf"%c es int islower(int c); Devuelve un valor h una letra minuscula\n",c); distinto de cero si es cierto; en otro caso devuelve 0 Determina si el ctype. argumento es un if(isodigit(c)) printf"%c es un int isodigit(int c); h digito octal. digito octal\n",c); Devuelve un valor

4 islower int 2 (c)

4 isodigit int 3 (c)

Hannsel Estuardo Cordon Ac Carnet: 0902 13 1018 distinto de cero si es cierto; en otro caso devuelve 0 Determina si el el argumento es un caracter ASCII imprimible (hex 0x20 -0x7e; octal if(isprint(c)) printf("\n"c 040 -176). imprimible\n",c); Devuelve un valor distinto de cero si es cierto; en otro caso devuelve 0

4 isprint( int 4 c)

ctype. int isprintint c); h

4 ispunct int 5 (c)

Determina si el argumento es un caracter de if(ispunct(c)) printf"%c es un ctype. puntuacion. int ispunct(int c); caracter de h Devuelve un valor puntuacion\n",c); distinto de cero si es cierto; en otro caso devuelve 0 Determina si el argumento es un espacio en blanco. isspace(int if(isspace(c)) printf"%c es Devuelve un valor un espacio\n",c); distinto de cero si es cierto; en otro caso devuelve 0

4 isspac int 6 e(c)

ctype. int h c);

4 isuppe int 7 r(c)

Determina si el argumento es una mayuscula. ctype. if(isupper(c)) printf"%c es int isupper(int c); Devuelve un valor h una mayuscula\n",c); distinto de cero si es cierto; en otro caso devuelve 0 Determina si el argumento es un digito ctype. hexadecimal. ifisxdigit(c)) print"%c es un int isxdigit(int c); h Devuelve un valor digito hexadecimal\n",c) distinto de cero si es cierto; en otro caso devuelve 0 math.h math.h long int Devuelve el calor long labs(long int l); absoluto de 1 ly=labs(lx); double log(double d); Devuelve logaritmo de d el hdouble natural x=10; y=log(x); lx=-51654,ly; x,y;

4 isxdigit int 8 (c)

4 labs(l) 9 5 log(d) 0

long int double

Hannsel Estuardo Cordon Ac Carnet: 0902 13 1018 5 log10(d double 1 ) math.h Devuelve el hdouble double logaritmno (en x=10; log10(double d); base 10) de d y=log10(x); x,y;

void 5 malloc( void(pun stdlib.h *malloc(size_t 2 u) tero) u);

Reserva u bytes de memoria. devuelve un cadena=malloc(MAX_CHR) puntero al principio ; del espacio reservado d1 double x=2.0, y=4.0, z; la z=pow(x,y); //z sera 1.60

5 pow(d1 double 3 , d2)

double Devuelve math.h pow(double d1, elevado a double d2); potencia d2

Escribe datos en dispositivo de salida estandar. Codi Formato go %c %d int printf(const char stdio.h %e *formato[,argum ento,...]); %f Caracter Entero Decimal Real (double o print("producto %d y %d es float), %d\n",x,y,x*y); notacion cientifica. Coma flotante Cadena de caractere s Hexadeci mal sin signo en un el putc('*',demo);

5 printf(.. int 4 .)

%s

%x

5 putc(c, int 5 f) 5 putcha int 6 r(c)

int putc(int stdio.h FILE *f);

c,

Escribe caracter archivo f

Escribe un caracter en el stdio.h int putchar(int c); putchar('B'); dispositivo de salida estandar Escribe una int puts(const cadena de stdio.h puts("Desea continuar (s/n); char *cad) caracteres en el dispositivo de

5 puts(s) int 7

Hannsel Estuardo Cordon Ac Carnet: 0902 13 1018 salida estandar Devuelve un entero positivo for (i=0;i<10;i++) aleatorio printf("%6d\",rand()); // visualizar 10 numeros aleatorios

5 rand( ) int 8

stdlib.h int rand(void);

5 rewind( void 9 f)

stdio.h

Mueve el puntero void al principio del rewind(fx); rewind(FILE *f); archivo f Lee datos en dispositivo de entrada estandar Codi Formato go %c Caracter Enetero Decimal Hexadeci mal Entero Decimal Numero Real Octal Puntero Cadena

6 scanf(.. int 0 .)

int scanf(const stdio.h char *formato %x {,direccion,...]); %i %f

%d

scanf('%d %f %c %s, &i, &fp, &c, s);

%o %p %s

6 sin(d) 1

double

math.h

double sin(double d);

double x, y; x=0.52; Devuelve el seno printf('x =%f radianes\n",x); de d y=cos(x); printf("el coseno de x =%f\n",y); Devuelve el seno y=sinh(x); hiperbolico de d Devuelve la raiz printf("%lf",sqrt(25.0); cuadrada de d visualiza 5 el de srand(semilla); //se

6 sinh(d) double 2 6 sqrt(d) double 3 6 srand( void 4 u) 6 strcmp int 5 (s1, s2)

math.h math.h

double sinh(double d); double sqrt(double d);

Inicializa void generador stdlib.h srand(unsigned numeros u); aleatorios string. int strcmp(const Compara h char*s1, const cadenas

dos i=strcmp("MNP", "mnp"); // de resultado < 0

Hannsel Estuardo Cordon Ac Carnet: 0902 13 1018 char *s2); caracteres lexicograficamente . Devuelve un valor negativo si s1 < s2; 0 si s1 y s2 son identicas; y un valor positivo si s1 > s2 i=strcmp("abc", "abc"); resultado = i=strcmp("xy", "abc"); resultado > 0 // 0 //

char s1[80]="Mayo"; char s2[80]="Octubre"; int j; j=strcmp(s1,s2);

strcmp 6 i(s1, int 6 s2)

Compara dos cadenas de caracteres lexicograficamente , sin diferenciar int strcmpi(const mayusculas de string. char*s1, const minusculas. v=strcmpi(s1,s2); h char *s2); Devuelve un valor negativo si s1 < s2; 0 si s1 y s2 son identicas; y un valor positivo si s1 > s2 char Copia la cadena char *s1="Pepe string. *strcpy(char s1, de caracteres s2 char h const char s2); en la cadena s1 strcpy(s2,s1); cout <<s2<< '\n'; Luis"; b[12];

6 strcpy( char 7 s1, s2)

6 strlen( int 8 s)

Devuelve el size_t longitud=strlen(nombre); string. numero de strlen(const char char s[81]="Cadena demo'; h caracteres de una *s); printf("La longitud de s es: cadena %d\n" strlen(s));

Pone todos los caracteres de s a c char *cad="----"; 6 strset( char(pun string. char *strset(char (excluyendo el strset (cad,'x'); // cad es 9 c, s) tero) h *cad, int c); caracter nulo del ahora xxxx final \0) Pasa la orden al sistema operativo. Devuelve cero si la orden se ejecuta correctamente; en system(dir); otro caso devuelve un valor distinto de cero, tipicamente 1. Devuelve tangente de d la y=tan(x);

7 system int 0 (s)

string. system(comd); h

7 tan(d) 1

double

math.h

double tan(double d);

Hannsel Estuardo Cordon Ac Carnet: 0902 13 1018 7 tanh(d) double 2 math.h double tanh(double d); Devuelve la tangente a=tanh(x); hiperbolica de d Devuelve el numero de segundos transcurridos time(&hora); despues de un tiempo base designado

7 time(p) long int 3

time.h

time_t time(time_t *h);

7 toascii int 4 7 tolower int 5 7 touppe int 6 r

Convierte el valor ctype. int toascii(int c); del argumento a c=toascii(entero); h ASCII ctype. Convierte una letra c=tolower('s'); h o int tolower(int c); a minuscula convierte en 's' stdlib.h ctype. int h o c); stdlib.h toupper(int Convierte una letra c=toupper('s'); a mayuscula convierte en 'S' //c se

//c

se

También podría gustarte