Alguien me puede echar una mano con este codigo que no me compila me tira este error:
error: lvalue required as increment operand
lvalue generalmente se refiere a el valor a la izquierda de un operador de asignación = la expresion frase++ es equivalente a frase = frase + 1 basicamente frase es un tipo de puntero constante no puede cambiar su valor, que apunta al primer elemento de frase, con esa expresión tu intentas cambiar la dirección de frase que no es posible por eso el error del compilador, simplemente debes declarar un puntero a frase seria asi
char *ptr = frase; ptr++
Y aqui dejo otra forma de hacerlo, haciendo uso de la función strtok:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char frase[]= "Hola como estas Hola como te va Hola amigo";
char palabra[] = "Hola", *ptr;
int i = 0;
ptr = strtok(frase, " ");
while(ptr != NULL)
{
if(strcmp(ptr, palabra)==0) i++;
ptr = strtok(NULL, " ");
}
cout << "La palabra Hola se repite: " << i << " veces" << endl;
return 0;
}
Saludos