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


 


Tema destacado: Únete al Grupo Steam elhacker.NET


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

Desconectado Desconectado

Mensajes: 44


Ver Perfil
contador de palabras (ayuda con el error)
« en: 2 Septiembre 2016, 22:47 »

Ayuda en esta parte
debo hacer un programa en dev c++
que me cambie las letras de mayúsculas a minusculas
y que me cuente las palabras digitadas
ejemplo
No haBra NadA que Te puEda aSUStaR
deberia quedarme asi
no habra nada que te pueda asustar
contiene 7 palabras
ya tengo la primera parte de mayúscula a minúscula

Código
  1. #include "conio.h"
  2. #include "stdio.h"
  3. #include "stdlib.h"
  4. #include "string.h"
  5. #include "windows.h"
  6. #include "iostream"
  7. #include "time.h"
  8. using namespace std;
  9. void minusculas(char a[]);
  10. int main (int argc, char** argv)
  11. {
  12. char p[50];
  13. cout<<"escriba una cadena"<<endl;
  14. gets(p);
  15. minusculas(p);
  16. puts(p);
  17. return 0;
  18. }
  19. void minusculas(char a[])
  20. {
  21. int i=0;
  22. for(i=0;a[i]!='\0';i++)
  23. {
  24. if(a[i]>='A'&&a[i]<='Z')
  25. {
  26. a[i]=a[i]+32;
  27. }
  28. }
  29. }
  30.  

pero no logro hacer el contador de palabras
tengo esto otro código pero me marca un error en los espacios

Código
  1.  
  2. #include "conio.h"
  3. #include "stdio.h"
  4. #include "stdlib.h"
  5. #include "string.h"
  6. #include "windows.h"
  7. #include "iostream"
  8. #include "time.h"
  9.  
  10. using namespace std;
  11. int palabras(char a[]);
  12. using namespace std;
  13. void minusculas(char a[]);
  14. int main (int argc, char** argv)
  15. {
  16. char p[50];
  17. cout<<"escriba una cadena"<<endl;
  18. gets(p);
  19. minusculas(p);
  20. puts(p);
  21.  
  22. return 0;
  23. }
  24.  
  25. int palabras(char a[])
  26. {
  27. int i, cont=0;
  28. bool pal=false;
  29.  
  30.  
  31. for(i=0;a[i]!='\0';i++)
  32. {
  33. if ((pal==false&&(a[i]>='A'&&a[i]<='Z')||(a[i]>='a'&&a[i]<='z')))
  34. {
  35. cont ++;
  36. pal=true;
  37. }
  38. else
  39. {
  40. if(a[i]==" ") // aqui el error
  41. pal=true;
  42. }
  43. }
  44. return(cont);
  45. }
  46.  
  47.  
  48.  

si alguien me explica como hacerlo le agredeceria


En línea

AlbertoBSD
Programador y
Colaborador
***
Desconectado Desconectado

Mensajes: 3.472


🏴 Libertad!!!!!


Ver Perfil WWW
Re: contador de palabras (ayuda con el error)
« Respuesta #1 en: 2 Septiembre 2016, 23:13 »

Cuando se trata de comparacion entre caracteres solo se ponen comillas simples

Código
  1. if(a[i]==' ') // aqui el error
  2. pal=true;


En línea

creiko

Desconectado Desconectado

Mensajes: 44


Ver Perfil
Re: contador de palabras (ayuda con el error)
« Respuesta #2 en: 2 Septiembre 2016, 23:18 »

gracias por la ayuda ya soluciones esa parte
pero al compilarlo no marca ningún error
pero me sale esto

L:\Estructura de datos\collect2.exe   [Error] ld returned 1 exit status
En línea

JonaLamper


Desconectado Desconectado

Mensajes: 391



Ver Perfil
Re: contador de palabras (ayuda con el error)
« Respuesta #3 en: 3 Septiembre 2016, 00:46 »

Lo que necesitas es la función tolower. Mira, se puede hacer más sencillo así:

Código
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. // ------------------------------------------------------------------------
  5. // Complejidad: O(N), donde N es el número de caracteres que tiene la frase
  6. int main(){
  7. string entrada, salida;
  8. int contador = 0, indice = 0;
  9.  
  10. cout << "Introduce una frase: " << endl;
  11. getline(cin, entrada); // Leemos la línea entera
  12. entrada += " \n"; // Ponemos un salto de línea al final
  13.  
  14. while (entrada[indice] != '\n'){ // Mientras no lleguemos al final de línea...
  15. if (entrada[indice] == ' ') // Si encontramos un espacio es que una palabra ha terminado
  16. contador++; // Incrementamos el número de palabras
  17. salida += tolower(entrada[indice]); // Pasamos (si hubiese) mayuscula a minuscula
  18. indice++;  // Y continuamos recorriendo la frase
  19. }
  20.  
  21. cout << "Frase en minuscula: " << salida << endl;
  22. cout << "Palabras totales: " << contador << endl;
  23.  
  24. system("PAUSE");
  25. return 0;
  26. }

La función tolower te convierte las mayúsculas a minúsculas directamente.

« Última modificación: 3 Septiembre 2016, 00:52 por JonaLamper » En línea

Utilizar palabras para hablar de palabras es como utilizar un lápiz para hacer un dibujo de ese lápiz sobre el mismo lápiz.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python] - Contador de palabras en frases
Scripting
ChicoMaravilla 4 27,319 Último mensaje 18 Enero 2011, 21:17
por Karcrack
[PYTHON] Contador de palabras
Scripting
ChicoMaravilla 2 9,093 Último mensaje 5 Abril 2011, 20:47
por Novlucker
contador de palabras, con funcion que devuelve valor erroneo
Programación C/C++
Angel20810 2 882 Último mensaje 4 Marzo 2017, 15:10
por integeroverflow
un contador de palabras
Programación C/C++
g.izmo 6 1,988 Último mensaje 14 Octubre 2017, 17:09
por g.izmo
Contador de palabras
Programación C/C++
Goddamn 1 475 Último mensaje 18 Marzo 2018, 19:23
por MAFUS
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines