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.
#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;
}
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
); }