C++ Ejercicios de Punteros Resueltos. Obtener la posición de un carácter dentro de una cadena

Función C++ que devuelve la posición de un carácter dentro de una cadena.
La función recibe un puntero con la cadena y el carácter a buscar. Devuelve un entero con la posición en la que fue encontrado el carácter ó -1 si no se encontró.

Prototipo de la función:
int BuscaCaracter(char *s , char c).

#include <iostream>
using namespace std;
int BuscaCaracter(char *, char);
int main()
{
   char cadena[80],car;
   int pos;
   cout << "Introduce cadena: ";
   cin.getline(cadena, 80);
   cout << "Introduce caracter: ";
   cin.get(car);
   pos=BuscaCaracter(cadena, car);
   if(pos!= -1)
      cout << "Encontrado en posicion ";
      cout << pos << endl;
   else
      cout << "No Encontrado\n";
   system("pause");
}

//Función que devuelve la posición de un carácter dentro de una cadena
int BuscaCaracter(char *s , char c)
{
  char *p = s;  //p es un puntero auxiliar para recorrer la cadena
  int cont=1;   //contendrá la posición donde se encuentra el carácter buscado
  while (*p!=c && *p) //mientras no encuentre el carácter y no llegue al nulo
  {
    cont++;     //se aumenta la posición
    p++;         //siguiente elemento de la cadena
  }
  if(*p==c)       //si se ha encontrado
     return cont; //devuelve su posición
  else
     return -1;    //sino devuelve -1
}


No hay comentarios:

Publicar un comentario