Título: Puntero Contar cantidad de caracter en una cadena
Hola de nuevo a todos, ahora estoy haciendo lo siguiente introduzco una cadena por ejemplo hola mundo y un caracter que en este caso seria 'o' el resultado tendria que devolverme un 2 por que es la cantidad de veces que se repite dentro de esa cadena hasta ahora tengo lo siguiente:
Código:
#include <stdlib.h> #include <stdio.h> int main(void) { char s[100]; char t[100]; int *ptr; int i; int contador=1; ptr=&contador;
printf("Escriba una cadena: "); gets(s); printf("Escriba la letra:"); gets(t);
for (i=0; s[i]!=0; i++){ if(s[i]==s){ //if(s[i+1]!=' ') contador++; } }
printf("La cadena tiene repetida: "); printf("%d Veces.",*ptr); system("pause");
}
Esto me da el error de ISO C++ forbids comparison between pointer and integer Si alguien me podria ayudar se los agradeceria
Registrado: 01 Oct 2004 Mensajes: 3657 Ubicación: Mexico
Publicado: 31/08/2007 7:11 pm
Título:
El error se encuentra en el bucle principal ya que no puedes comparar un entero (en tu caso "s[i]") con un puntero (en tu caso el nombre del array "s").
El programa modificado para que compile sin errores como C++:
Código:
#include <cstdio> #include <cstdlib>
using namespace std;
int main() { char s[100]; char t[100]; char *p; char *q; int repeticiones;
printf("Escriba una cadena: "); fflush(stdout); gets(s);
printf("Escriba la letra: "); fflush(stdout); gets(t);
repeticiones = 0; for (p = s, q = t; *p != '\0'; p++) if (*p == *q) repeticiones++;
printf("Repeticiones == %d\n", repeticiones);
return 0; }
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz