Autor
|
Tema: duda con programa que cuenta caracteres (Leído 5,546 veces)
|
dx671
Desconectado
Mensajes: 3
|
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
Mensajes: 76
пирожки
|
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
Mensajes: 3
|
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
Mensajes: 37
|
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 20 int main() { char frase[MAX]; int i=0; int espacio=0; for(i=0; i<MAX; i++) { if(frase[i] == ' ') { espacio++; } } printf("%d espacios\n",espacio ); }
espero te sirva, lo hice en code::blocks 10.05, Windows
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
No necesitas un arreglo para esto, podrías hacerlo así: #include <stdio.h> int main(void) { char c; unsigned contador = 0; contador++; printf("Escribiste : %u\n", contador ); return 0; }
Saludos.
|
|
|
En línea
|
|
|
|
PiroskY
Desconectado
Mensajes: 76
пирожки
|
Supongo que con el EOF funciona, pero yo lo compararía contra '\n'
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
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": int c; unsigned contador = 0; while((c = getchar()) != EOF && c != '\n') 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
Mensajes: 3.069
/^$/
|
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
|
|
|
|
PiroskY
Desconectado
Mensajes: 76
пирожки
|
int c; unsigned contador = 0; while((c = getchar()) != EOF && c != '\n') if(c != '\n') contador++;
ahí quedaría, creo yo
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
int c; unsigned contador = 0; while((c = getchar()) != EOF && c != '\n') if(c != '\n') 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: int c; unsigned contador = 0; while ((c = getchar()) != EOF && c != '\n') contador++; if (c == '\n') 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
|
|
|
|
|