Programación General > C/C++

 contar palabras de una cadena de caracteres

<< < (3/6) > >>

m0skit0:
Pfff C++ con char*, la gente es cabezota... Bueno vosotros veréis... También ten en cuenta que tal y como lo has hecho, no puedes introducir una frase de más de 199 caracteres. Eso deberías controlarlo so pena de violación de segmento.

Igualmente, te dejo un ejemplo de cómo sería con C++:


--- Código: C++ ---#include <string> class ManipuladorFrases{public:    static unsigned int cuenta_palabras(string frase);} unsigned int ManipuladorFrases::cuenta_palabras(string frase){    unsigned int i = 0, contador = 0;    while(i <= frase.length)    {        if (frase[i] == ' ')        {            contador++;        }        i++;    }        return ++contador;} int main(){    string frase;    frase << cin;    cout << "Su frase contiene ", ManipuladorStrings::cuenta_palabras(frase), " palabras";    return 0;} Saludos

crixxus:
hey chicos gracias por su ayuda. Les dejo el problema resuelto por mi profesor.

--- Código: C++ ---#include<iostream.h>#include<string.h>#include<conio.h> int cuenta(char *a); int main(){    char cad[50];    cout << "Digite una Cadena: ";    gets(cad);    cout << "n# de Palabras: " << cuenta(cad);    getch();    return 0;} int cuenta(char *a){    int i = 0,c = 0;        if(a[i]==' ')       while(a[i]==' ')          i++;    while(a[i] != '')    {          if(a[i] == ' ')          {   c++;              while(a[i]==' ')                  i++;          }          if(a[i] != '')             i++;                  }    if(a[i-1]==' ')       c--;    return c+1;}  

m0skit0:
Retiro lo dicho.

herzdark:

--- Cita de: "m0skit0" ---Retiro lo dicho.
--- Fin de la cita ---
que paso moskito???, lo estuve pensando mucho y la clase estandar string es en verdad un char * encubierto
la clase String sería así segun como lo veo yo

--- Código: C++ --- Class String {char *cad;  public:    String ();    String (const String &);    String & operator = (const String &);    String & operator + (const String &);    int Length ();    ...; }  

m0skit0:

--- Cita de: "herzdark" ---que paso moskito???
--- Fin de la cita ---
Nada, en realidad borré lo que había escrito en ese post, no me refiero a lo anterior. Sigo manteniendo mi opinión de que string es mucho mejor que char*.


--- Cita de: "herzdark" ---lo estuve pensando mucho y la clase estandar string es en verdad un char * encubierto
--- Fin de la cita ---
Parecido, pero mucho más avanzado de lo que crees. Con char* tienes que reservar el espacio tú mismo, cuando la clase string se encarga de todo eso por ti. Prueba en el ejemplo de tu profesor a introducir una cadena de 100 caracteres, a ver qué pasa. Si se ha creado la clase string en C++, es por algo. Y desde luego el ejemplo de tu profesor es una mezcla absurda entre C y C++. Y no es el único que hace semejantes desvaríos. Es algo típico de la gente que programa en C++ viniendo de C.

Saludos

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa