Nuevas NORMAS para el foro
Bienvenido(a),
Visitante
. Favor de
ingresar
o
registrarse
.
¿Perdiste tu
email de activación?
- Agosto 21, 2008, 04:04:22
Boton Buscar
Visita:
Articulos
-
Juegos Gratis
-
Da Foros
Comunidad Underground Hispana
|
Programacion
|
Programación
|
Carbide C/C#/C++
| Tema:
Primer Programa en C [A ver si me podeis ayudar a solucionar una duda...]
0 Usuarios y 1 Visitante están viendo este tema.
« anterior
próximo »
Páginas:
[
1
]
Autor
Tema: Primer Programa en C [A ver si me podeis ayudar a solucionar una duda...] (Leído 279 veces)
tkows
Habitual
Desconectado
Mensajes: 183
Primer Programa en C [A ver si me podeis ayudar a solucionar una duda...]
«
en:
Junio 06, 2007, 03:52:41 »
Código:
#include <stdio.h>
#include <string.h>
int main(){
char text[101];
int palab=0;
int letra=0;
int spac=0;
char *punt;
punt=text;
printf("\nEscribe una frase/palabra(Maximo 100 letras):\n");
printf("\n");
fflush(stdout);
gets(text);
while (*punt!='\0'){
if (*punt==' ') {
palab++;
spac++;
}
else letra++;
punt++;
}
if (*punt=='\0'){
palab++;
printf("\nLa frase/palabra tiene %i letras, %i palabras y %i espacios.\n", letra, palab, spac);
}
}
Es un code muy simple ya que apenas acabo de iniciarme...
El programa funciona perfecto y eso pero lo que quiero es saber como puedo definir la string para que acepte valores "infinitos" por asi decirlo, es decir, dejar el array vacio, para introducir una cantidad indefinida de caracteres...
he probado con:
Código:
char text[];
pero me da error el compilador :S
Como podria solucionarlo?
Saludos!
Gracias!
En línea
ven0m
Colaborador
Desconectado
Mensajes: 782
Christina...Eat me, drink me...
Re: Primer Programa en C [A ver si me podeis ayudar a solucionar una duda...]
«
Respuesta #1 en:
Junio 11, 2007, 12:24:05 »
Buenas tyko : mira al momento de compilar tu codigo la Linea 14 me da errores... yo he cambiado el codigo
por
gets(texto); a
getchar();
y me compila sin errores...
tu quieres que el programa vuelva siempre a ldonde dice
Escriba una Frase / maximo 100 letras???
y bueno hehe he probado el programa y siempre escribe el mismo resultado..
eso de que acepte valores infinitos lo estoy probando ahora...
y para que es el while?
s
PS: Una pregunta a los que saben mas.. el quiere que el string obtenga valores infinitos.. no se podria incrementar eso con un for???
osea cada vez que el usuario escriba una palabra el espacio se incremente?
salud0s
«
Última modificación: Junio 11, 2007, 01:03:24 por k0ukl0S
»
En línea
R-E-S-P-E-C-T, find out what it means to me
Christina..Christina..Brak mi ciebie moj EMO-Princesa..BARDZO CIE KOCHAM!!!
dreams_eater
Habitual
Desconectado
Mensajes: 174
Re: Primer Programa en C [A ver si me podeis ayudar a solucionar una duda...]
«
Respuesta #2 en:
ſeptiembre 16, 2007, 10:18:34 »
Te lo esplico de esta forma
Hay variables globales y locales (ellas son finitas, es decir se crean y se destruyen en forma finita)
No se puede crear variables infinitas.
Pero si se puede lograr la sensacion de ello con algo llamado asignación dinamica (que seia pedirle al sistema operativo memoria en tiempo de ejecución).
No se metan (aun) en asignacion dinamica, primero aprendan a manejar decentemente el ingreso de strings, scanf(), cin>>,getline.cin>>.
luego recorran el string, traten de hacer ustedes mismos strcpy(), strcat() y strcmp().
y luego aprendan punteros
Y finalmente "dynamic allocation".
En línea
"La juventud envejece, la inmadurez se supera, la ignorancia puede educarse, y la borrachera desperjarse, pero la estupidez dura para siempre" - Aristófanes
dark confundido
Habitual
Desconectado
Mensajes: 177
Maestro Troyano
Re: Primer Programa en C [A ver si me podeis ayudar a solucionar una duda...]
«
Respuesta #3 en:
ſeptiembre 17, 2007, 07:24:24 »
infinito no se puede por que no tienes memoria infinita XD perp podrias hacer esto
char *texto;
texto=calloc(1,sizeof(char));
esto es igual a esto texto[1] pero le puedes seguir aumentando el tamaño
ahora veremos como hacer para tener mas tamaña
char *temp;
temp=realloc(texto,sizeof(texto)+1);
ahora temp va a tener el tamaño de texto+1
En línea
DarkIker
Habitual
Desconectado
Mensajes: 263
Colombia Underground Team
Re: Primer Programa en C [A ver si me podeis ayudar a solucionar una duda...]
«
Respuesta #4 en:
ſeptiembre 17, 2007, 01:10:43 »
So bad, joder tio que texto es un puntero y sizeof no es capaz de tomar el tamaño de un puntero
, asi que no tomara el tamaño de texto +1 si no el tamaño de un puntero( 4 ) + 1
.
Att:
DarkIker
En línea
http://www.colombiaunderground.org
--> Colombia Underground Team
http://darkiker.blogspot.com
--> My Blog
tkows
Habitual
Desconectado
Mensajes: 183
Re: Primer Programa en C [A ver si me podeis ayudar a solucionar una duda...]
«
Respuesta #5 en:
ſeptiembre 17, 2007, 02:03:56 »
Hola!
Bueno, gracias a todos por responder y ayudarme
. Gracias dreams eater por la explicación!
Por cierto ven0m lo del while es para comparar si el caracter es: \0 (el que indica que finaliza la string) y utilizo el while para recorrer el array
Gracias y...
printf("Saludos"); /* XDDD */
En línea
dark confundido
Habitual
Desconectado
Mensajes: 177
Maestro Troyano
Re: Primer Programa en C [A ver si me podeis ayudar a solucionar una duda...]
«
Respuesta #6 en:
ſeptiembre 17, 2007, 02:05:28 »
Cita de: DarkIker en ſeptiembre 17, 2007, 01:10:43
So bad, joder tio que texto es un puntero y sizeof no es capaz de tomar el tamaño de un puntero
, asi que no tomara el tamaño de texto +1 si no el tamaño de un puntero( 4 ) + 1
.
Att:
DarkIker
gracias por corregir ni me habia dado cuenta cabe recalcar que acababa de llegar del trabajo a esa hora o sea estaba con mucho sueño por que trabajo de noche
char *texto;
char *temp;
texto=calloc(1,sizeof(char));
temp=realloc(texto,2);
temp queda como si fuera esto temp[3]
PD: la proxima vez llegare directo a la cama
y no al internet
En línea
DarkIker
Habitual
Desconectado
Mensajes: 263
Colombia Underground Team
Re: Primer Programa en C [A ver si me podeis ayudar a solucionar una duda...]
«
Respuesta #7 en:
ſeptiembre 17, 2007, 02:41:47 »
hmmm quda como 2 tio, temp[2].
Att:
DarkIker
En línea
http://www.colombiaunderground.org
--> Colombia Underground Team
http://darkiker.blogspot.com
--> My Blog
Ni0
Gran Colaborador
Desconectado
Mensajes: 1362
Ni0-inside the source code
Re: Primer Programa en C [A ver si me podeis ayudar a solucionar una duda...]
«
Respuesta #8 en:
ſeptiembre 17, 2007, 03:41:11 »
hola, aver... la funcion gets(texto); esta mal, creo que es texto = gets();
eso es un error que tenes, ahora la memoria infinita creo que en C no se puede, eso lei
salu2
En línea
Inside The Source Code
Linux Registred User #460377
FreakMind
Habitual
Desconectado
Mensajes: 181
Re: Primer Programa en C [A ver si me podeis ayudar a solucionar una duda...]
«
Respuesta #9 en:
ſeptiembre 17, 2007, 04:31:31 »
Buenas
Pequeños comentarios....
1) El prototipo de gets es
char *gets(char *cadena);
. Sin embargo, gets tiene problemas con el overflow, por lo que recomendaria que usen fgets
2) En ningun lenguaje se puede tener memoria infinita... simplemente porque las memorias tienen un limite... La computadora simula tener mas memoria (pero no infinita) de la que en verdad tiene con la memoria virtual (swappear procesos a disco)
3) Hacer un realloc cada 1 caracter me parece algo ilogico. Se perdera mas tiempo haciendo llamadas al SO pidiendo por mas memoria que otra cosa. Yo lo que haria es algo asi (no implica que sea lo mejor)
Código:
#define SIZE 1024
int main(void)
{
char buffer[SIZE], *str = NULL;
int count = 0;
while( /* alguna condicion */){
fgets(buffer, SIZE, stdin);
/* hacer algo quizas */
str = realloc(str, sizeof(char) * (count + strlen(buffer) + 1));
memcpy(str + count, strlen(buffer), buffer);
str[count += strlen(buffer)] = '\0';
memset(buffer, 0, SIZE);
/* hacer otra cosa quizas */
}
return 0;
}
PD: No esta probado ni nada... asi que estan avisados
Salu2, FreakMind
En línea
Connoisseurs of C semantics find C++ inferior to ++C
Páginas:
[
1
]
Comunidad Underground Hispana
|
Programacion
|
Programación
|
Carbide C/C#/C++
| Tema:
Primer Programa en C [A ver si me podeis ayudar a solucionar una duda...]
« anterior
próximo »
Ir a:
Por favor selecciona un destino:
-----------------------------
Foros De Consulta General
-----------------------------
=> Novedades
=> Dudas, Comentarios Y Sugerencias
=> Top 100
=> Off-Topic
=> Revista E-Zine
===> Noticias
-----------------------------
Phreaking, Hacking y Seguridad
-----------------------------
=> HacK GeneraL
===> Ingenieria Inversa
===> Encriptacion, Cryptografia
===> TV HACK
===> Seguridad
===> Cursos y Ezines
=====> Trucos Internet
=====> Textos Hacking
===> Defacing
=> Phreaking
===> Moviles
=> Bug y Exploits
-----------------------------
Hack Novato
-----------------------------
=> Hack para newbies
=> Todo Messenger
=> Troyanos y virus
-----------------------------
Sistemas Operativos
-----------------------------
=> Windows y otros sistemas operativos no libres
===> Problemas Tecnicos Windows
=> Sistemas operativos libres.
===> GNU/Linux
===> Manuales y Tutoriales
===> Descargas
-----------------------------
Programacion
-----------------------------
=> Programación
===> Programación Basica
===> Otros Lenguajes
===> Visual Basic y Net
===> ASM
===> Programacion Shell
===> Perl
===> Carbide C/C#/C++
===> Batch
===> SQL
=> Programacion para webmasters
===> Consultas
===> Php
===> Html
===> Java - Java Script
===> Php Nuke
===> Scripts Pre-Fabricados
===> Mysql
===> CSS y Diseño Web
-----------------------------
Artes Graficas
-----------------------------
=> Diseño Grafico
===> Battle Arts
===> Flash
===> Tutoriales
===> Galerías
===> Software
-----------------------------
Area Tecnica
-----------------------------
=> Networking & Wireless
=> Overclocking, Refrigeracion y demas
=> Hardware
===> Cursos Y manuales
=> Electronica Y Robotica
-----------------------------
Programas
-----------------------------
=> Software
===> Configuraciones de software
===> Pedidos de software
=> Cracks & Serialz
=> P2p, Bittorrent, Elinks
-----------------------------
Multimedia Y Divx
-----------------------------
=> Juegos PC Y Consolas
===> Dudas ayudas y comentarios de juegos
===> Pedidos de juegos
=> Mp3
=> Multimedia
=> Peliculas Divx
-----------------------------
Entretenimiento Y sitios de interes
-----------------------------
=> Juegos, Humor y Adultos. (Diversión)
===> Adultos
=> Paginas Webs Recomendadas
=> Videos
Powered by SMF 1.1.5
|
SMF © 2006-2007, Simple Machines LLC
Loading...