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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Programa con cadenas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa con cadenas  (Leído 1,730 veces)
muymuyperdido

Desconectado Desconectado

Mensajes: 45


Ver Perfil
Programa con cadenas
« en: 1 Diciembre 2012, 18:24 pm »

El programa consiste en que yo escribo una frase y me dice las palabras que tiene, y se repite hasta que la frase introducida sea "Fin del ejercicio"
Lo he planteado tal que así y me da error de windows, porque compilar compila y me da las palabras de la primera frase que introduzco (y ya se acaba el programa)

 
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define TAM 200
  4. int palabras (char v[]);
  5. void main()
  6. {
  7.    int i;
  8.    char f[TAM]="Fin del ejercicio";
  9.    char v[TAM];
  10.    do
  11.    {
  12.        printf("Introduzca la frase");
  13.        gets(v);
  14.        printf("El numero de palabras es %d",palabras(v));
  15.    }
  16.    while(v[i]!=f[i]);
  17. }
  18. int palabras (char v[])
  19. {
  20.    int palabras=1,i;
  21.    for(i=0; v[i]!='\0'; i++)
  22.    {
  23.        if(v[i]==' ')
  24.        {
  25.            palabras++;
  26.        }
  27.    }
  28.    return palabras;
  29. }
  30.  


En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Programa con cadenas
« Respuesta #1 en: 1 Diciembre 2012, 18:35 pm »

Hola! el problema esta en:
Código
  1. while(v[i]!=f[i]);
en los indices de los arreglos usas la variable "i", a la cual no la inicializas con ningun valor por lo tanto tiene "basura" ocasionando condiciones falsas.. Ademas al comparar de esa manera solo comparas la primera letra de cada arreglo, seria mas optimo usar strcmp para comparar la cadena entera


Saludos


En línea

Ahorrate una pregunta, lee el man
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Programa con cadenas
« Respuesta #2 en: 1 Diciembre 2012, 19:56 pm »

Se me ha colado Durasno, pero como ya te lo explico él te dejo lo que tenía, fíjate en el uso de strcmp para comparar las cadenas:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define TAM 200
  4. int palabras (char v[]);
  5. void main()
  6. {
  7.    int i;
  8.    char f[TAM]="Fin del ejercicio";
  9.    char v[TAM];
  10.    do
  11.    {
  12.        printf("\nIntroduzca la frase: ");
  13.        gets(v);
  14.        printf("El numero de palabras es %d",palabras(v));
  15.    }
  16.    while( strcmp(f, v));
  17.    puts ("\nHasta lueguito\n");
  18.    return 0;
  19. }
  20. int palabras (char v[])
  21. {
  22.    int palabras=1,i;
  23.    for(i=0; v[i]!='\0'; i++)
  24.    {
  25.        if(v[i]==' ')
  26.        {
  27.            palabras++;
  28.        }
  29.    }
  30.    return palabras;
  31. }
Saluditos!.
En línea

muymuyperdido

Desconectado Desconectado

Mensajes: 45


Ver Perfil
Re: Programa con cadenas
« Respuesta #3 en: 2 Diciembre 2012, 11:26 am »

Cierto! No habia caido, muchas gracias a ambos!!! :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Modificar cadenas en programa compilado en Delphi « 1 2 »
Ingeniería Inversa
registrymaster 18 11,325 Último mensaje 13 Septiembre 2011, 13:38 pm
por apuromafo CLS
Programa que extraiga cadenas en file txt (C++)
Programación C/C++
fergosan 2 3,752 Último mensaje 31 Diciembre 2010, 22:10 pm
por leogtz
Crear un programa para operaciones con cadenas
Programación C/C++
Montse2293 6 4,250 Último mensaje 3 Enero 2011, 01:54 am
por Leyer
Un programa para cadenas?
Ingeniería Inversa
x64core 5 2,652 Último mensaje 3 Septiembre 2012, 07:17 am
por x64core
Programa con cadenas
Programación C/C++
muymuyperdido 2 1,598 Último mensaje 2 Diciembre 2012, 19:02 pm
por leosansan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines