Foros del Web » Programación para mayores de 30 ;) » C/C++ »

ficheros

Estas en el tema de ficheros en el foro de C/C++ en Foros del Web. debo contar el numero de caracteres de un archivo 1. cuantos son numeros 2. cuantos son letras 3. cuantos son letras minusculas 4. cuantos son ...
  #1 (permalink)  
Antiguo 05/05/2008, 15:01
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
ficheros

debo contar el numero de caracteres de un archivo
1. cuantos son numeros
2. cuantos son letras
3. cuantos son letras minusculas
4. cuantos son letra mayusculas

despues generar dos archivos:
uno que contenga los numeros y otro las letras
por ejemplo si un archivo contiene: AabDf3jp241i2
debe generar uno con las letras y otro con los numeros asi
letras:AabDfjpi
numeros: 32412

lo de contar la cantidad de numeros y letras, ya lo hice
no he hecho lo de generar los 2 archivos. alguien sabe como diferenciar un numero de una letra?? que funcion se puede utilizar, en caso de que exista!!!
gracias.......
  #2 (permalink)  
Antiguo 05/05/2008, 15:24
Avatar de Mephisto  
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 184
Antigüedad: 18 años, 4 meses
Puntos: 3
Re: ficheros

Una forma es la comparación directa, por ejemplo

Código:
if(x>='A' && x>= 'Z')
Siendo x un char, y lo mismo para los otros casos
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...
  #3 (permalink)  
Antiguo 05/05/2008, 15:39
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
Re: ficheros

oye, no entiendo la sentencia, aplicada al caso que tengo,,, por fa me la explicas,
perdona mi ignorancia
yo necesito determinar, si es un numero o una letra, y depediendo de eso se almacena en el archivo de numeros o letras respectivamente
  #4 (permalink)  
Antiguo 05/05/2008, 15:40
 
Fecha de Ingreso: diciembre-2007
Mensajes: 39
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: ficheros

Tb puedes jugar con la tabla ascii, a mi siempre me gusto utilizarla
  #5 (permalink)  
Antiguo 05/05/2008, 15:44
 
Fecha de Ingreso: marzo-2008
Mensajes: 303
Antigüedad: 16 años, 1 mes
Puntos: 4
Re: ficheros

Cita:
Iniciado por bebeme Ver Mensaje
... alguien sabe como diferenciar un numero de una letra?? que funcion se puede utilizar, en caso de que exista!!!
gracias.......
Están el el fichero ctype.h, en tu caso necesitas usar las funciones isdigit() y isalpha().
  #6 (permalink)  
Antiguo 05/05/2008, 15:58
Avatar de Mephisto  
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 184
Antigüedad: 18 años, 4 meses
Puntos: 3
Re: ficheros

En una variable char almacenas lo que vas leyendo de tu archivo y despues comparas

Código:
while([al leer el archivo no sea EOF]){//Lees caracter por caracter

    if((x>='A' && x>= 'Z')||(x>='a' && x>= 'z'))//El caracter leido es una letra
   {
     //Escribes x en el archivo de letras

   }
   if(x>='0' && x>= '9')//El caracter leido es un numero
   {
     //Escribe x en el archivo de numeros
   }
}
Tambien como menciona LeOnHe4Rt puedes hacerlo con el valor ascii

48 - 57 (ascii) -> del 0 al 9
65 - 90 (ascii) -> de A a Z
97 - 122 (ascii) -> de a a z


Tambien como dice a2a2, estan las funciones isdigit() y isalpha(). Al final tienes que leer cada uno de los caracteres de tu archivo y establecer cual es...
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...
  #7 (permalink)  
Antiguo 05/05/2008, 16:14
 
Fecha de Ingreso: marzo-2008
Mensajes: 303
Antigüedad: 16 años, 1 mes
Puntos: 4
Re: ficheros

Mephisto, ahora que estás a tiempo corrige lo siguiente:
x>='Z' por x<='Z'
x>='z' por x<='z'
x>='9' por x<='9'

Aunque sigo pensando que es mejor usar isdigit() y isalpha(), que son gratis
  #8 (permalink)  
Antiguo 05/05/2008, 16:34
Avatar de Mephisto  
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 184
Antigüedad: 18 años, 4 meses
Puntos: 3
Re: ficheros

Tienes razon a2a2, puse mal la condicion... jejejejej Eso del copy-paste como que no me funciono muy bien...
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...
  #9 (permalink)  
Antiguo 05/05/2008, 16:36
Avatar de Mephisto  
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 184
Antigüedad: 18 años, 4 meses
Puntos: 3
Re: ficheros

Va de nuevo para enmendar mi error, jajajajajaj

Código:
while([al leer el archivo no sea EOF]){//Lees caracter por caracter

    if((x>='A' && x<= 'Z')||(x>='a' && x<= 'z'))//El caracter leido es una letra
   {
     //Escribes x en el archivo de letras

   }
   if(x>='0' && x<= '9')//El caracter leido es un numero
   {
     //Escribe x en el archivo de numeros
   }
}
Gracias a2a2... y estoy tambien de acuerdo en el uso de iddigit(), y isalpha(), ya el uso de cualquiera de las dos opciones depende del gusto del programador no crees???
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...
  #10 (permalink)  
Antiguo 05/05/2008, 16:50
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
Re: ficheros

gracias!!!!
pikos pa los dosss
jajja
  #11 (permalink)  
Antiguo 05/05/2008, 16:54
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
Re: ficheros

alguno de ustedes me puede ayudar con esto:
hola, lo que tengo que hacer es lo siguiente:

crear un archivo en c que realice:
1.ingresar datos nombre, apellido, codigo, sexo, dir, telefono, cedula, fecha de nacimiento
2.ordenar alfabeticamente por apellido
3.ordenar por edad
4.ingresar registros en la posicion requerida
5.eliminar un registro requerido
6. imprimir por pantalla un registro buscado por telefono
7.mostrar por pantalla el numero de registros en el archivo
8. permitir renombrar el archivo
9. ubicar el archivo en una posicion del disco deseado
10. crear 2 nuevos archivos con los registros "hombres" y "mujeres" separados

ya realice, algunos, pero no me acuerdo de los metodos de ordenamiento y no tengo ni idea como ubicar el archivo en una posicion del disco deseado, y crear los registros "hombres" y "mujeres" separados, en 2 archivos.

por favor, urgenteeeeeeeeee
quien me ayuda con un codigo, que tal vez tenga algo similar
los mas pronto posible
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:04.