elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  duda con programa que cuenta caracteres
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: duda con programa que cuenta caracteres  (Leído 5,128 veces)
dx671

Desconectado Desconectado

Mensajes: 3


Ver Perfil
duda con programa que cuenta caracteres
« en: 7 Julio 2011, 01:57 am »

Hola a todos, tengo que preparar un programa que me cuenta los caracteres que introduzco utilizando arreglos y ciclos. Lo que tengo hecho no es mcho, pero voy a explicar lo que trato de hacer



#include <stdio.h>
#include <stdlib.h>
#define tam 1000

int main()
{
int i=0;

char a[tam];

    for(i=0 ;i<1000; i++)
    a = fgetc(i);
    printf("%d", %i);
}

estoy definiendo un array de 1000 caracteres y un contador i que aumente cada vez que agregue uno, y al final recibir el valor de i cuando haga el printf


En línea

PiroskY

Desconectado Desconectado

Mensajes: 76


пирожки


Ver Perfil
Re: duda con programa que cuenta caracteres
« Respuesta #1 en: 7 Julio 2011, 04:53 am »

Explica mejor el ejercicio
Que tiene que hacer exactamente?
A medida que apretás una tecla mostrarla? y también ir mostrando el numero de teclas presionadas?
o simplemente ingresar algo, y al final mostrar cuantos caracteres introdujiste?


En línea

dx671

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: duda con programa que cuenta caracteres
« Respuesta #2 en: 7 Julio 2011, 07:20 am »

lo que debe hacer es lo siguiente:
escribo X cantidad de caracteres, le doy enter y el programa me dice "escribiste X caracteres", depues me tengo que poner mas exquisito y decir cuantas mayusculas hay, pero lo que mas me interesa es la primera parte
gracias :)
En línea

javahat

Desconectado Desconectado

Mensajes: 37


Ver Perfil
Re: duda con programa que cuenta caracteres
« Respuesta #3 en: 7 Julio 2011, 07:51 am »

Código
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5.  
  6. #define MAX 20
  7.  
  8. int main()
  9. {
  10.    char frase[MAX];
  11.    int i=0;
  12.    int espacio=0;
  13.  
  14.    gets(frase);
  15.  
  16.    for(i=0; i<MAX; i++)
  17.    {
  18.      if(frase[i] == ' ')
  19.      {
  20.          espacio++;
  21.      }
  22.    }
  23.  
  24.    printf("%d caracteres\n",strlen(frase));
  25.    printf("%d espacios\n",espacio);
  26.  
  27. }
  28.  
  29.  

espero te sirva, lo hice en code::blocks 10.05, Windows  :)
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: duda con programa que cuenta caracteres
« Respuesta #4 en: 7 Julio 2011, 09:01 am »

No necesitas un arreglo para esto, podrías hacerlo así:

Código
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5.    char c;
  6.    unsigned contador = 0;
  7.    while((c = getchar()) != EOF)
  8.    contador++;
  9.  
  10.    printf("Escribiste : %u\n", contador);
  11.    return 0;
  12. }
  13.  

Saludos.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
PiroskY

Desconectado Desconectado

Mensajes: 76


пирожки


Ver Perfil
Re: duda con programa que cuenta caracteres
« Respuesta #5 en: 7 Julio 2011, 16:14 pm »

Supongo que con el EOF funciona, pero yo lo compararía contra '\n'
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: duda con programa que cuenta caracteres
« Respuesta #6 en: 7 Julio 2011, 17:08 pm »

Se debe comparar contra EOF en caso de error o fin de archivo y contra '\n' para cumplir con el enunciado (debe procesar solo una linea de texto).

Por ultimo se debe cambiar el tipo de la variable "c" en el programa de Leo a "int" ya que ese es el tipo de retorno de la función "getchar":
Código
  1. int c;
  2. unsigned contador = 0;
  3.  
  4. while((c = getchar()) != EOF && c != '\n')
  5.   contador++;

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: duda con programa que cuenta caracteres
« Respuesta #7 en: 7 Julio 2011, 18:10 pm »

Cierto, y también comparar contra '\n', como en el código de rir3760, ya que creo que daría un caracter de más. Saludos.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
PiroskY

Desconectado Desconectado

Mensajes: 76


пирожки


Ver Perfil
Re: duda con programa que cuenta caracteres
« Respuesta #8 en: 7 Julio 2011, 18:16 pm »

Código
  1. int c;
  2. unsigned contador = 0;
  3.  
  4. while((c = getchar()) != EOF && c != '\n')
  5.   if(c != '\n')
  6.      contador++;

ahí quedaría, creo yo
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: duda con programa que cuenta caracteres
« Respuesta #9 en: 7 Julio 2011, 18:31 pm »

Código
  1. int c;
  2. unsigned contador = 0;
  3.  
  4. while((c = getchar()) != EOF && c != '\n')
  5.   if(c != '\n')
  6.      contador++;

ahí quedaría, creo yo
No tendria efecto ya que el cuerpo del bucle (la sentencia de seleccion) se ejecuta mientras el caracter sea distinto de EOF y '\n'. En otras palabras dentro del cuerpo del bucle "c != '\n'" siempre es verdadero (1 en este caso).

Si se debe contabilizar el caracter '\n' esa condicion se puede colocar a continuacion del bucle:
Código
  1. int c;
  2. unsigned contador = 0;
  3.  
  4. while ((c = getchar()) != EOF && c != '\n')
  5.   contador++;
  6. if (c == '\n')
  7.   contador++;
  8.  
  9. /* ... */

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Duda] caracteres de español no reconocidos
PHP
Red Mx 5 1,862 Último mensaje 22 Enero 2007, 19:04 pm
por Red Mx
duda con visualizacion de caracteres
Programación Visual Basic
Anteros 9 2,804 Último mensaje 8 Junio 2008, 17:34 pm
por Anteros
Caracteres de contraseña en cuenta Steam
Juegos y Consolas
aaronduran2 0 1,859 Último mensaje 21 Septiembre 2008, 15:44 pm
por aaronduran2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines