Contador de palabras

Iniciado por Goddamn, 18 Marzo 2018, 18:51 PM

0 Miembros y 1 Visitante están viendo este tema.

Goddamn

Hola, como puedo hacer para que este programa me cuente cuanta cantidad de pacman se encuentra en una cadena.

Por ejemplo: solo que compruebe los pacmans (Hola :v Hola :v Adiós :v Adiós :v:v:v:v) = 7 pacmans.

No entiendo mucho de esto espero que me ayuden gracias.

Código (cpp) [Seleccionar]

#include <conio.h>
#include <stdio.h>
#include <string.h>

#include <string>
#include <algorithm>
#include <iostream>

using namespace std;

int main()
{
int iCont = 0, i = 0;
char cPacman[] = "Hola :v Hola :v Adios :v Adios :v:v:v:v";
char cPalabra[] = ":v";

string sString = string(cPacman);

int iLen = strlen(sString.c_str());

if (sString.find(cPalabra) == -1)
printf("No se encuentra ningun pacman");
else
{
while (i < iLen)
{
while (i < iLen && cPacman[i] == ' ')
{
i = i + 1;
}

if (i < iLen)
{
iCont = iCont + 1;
}

while (i < iLen && cPacman[i] != ' ')
{
i = i + 1;
}
}

printf("El pacman si se encuentra y se repite %d", iCont);

}

getch();
return 0;
}


MAFUS

Ya tienes una función de librería que hace eso: strstr.

Algo así:
#include <stdio.h>
#include <string.h>

int main() {
    int iCont = 0;
    char cPacman[] = "Hola :v Hola :v Adios :v Adios :v:v:v:v";
    char cPalabra[] = ":v";
    char *aux = cPacman;

    while(aux = strstr(aux, cPalabra)) {
        ++iCont;
        aux += strlen(cPalabra); // Para que no me cuente siempre el mismo
                                 // texto muevo aux al final de la palabra encontrada.
    }

    printf("El pacman se repite %d", iCont);
}