Busca la funcion que necesitas!

jueves, 6 de enero de 2011

C - Funcion Instr o StrPos en C

Bueno este code salió intentando ayudar a the swash en una cosilla, creditos a the swash, la función simula strpos o instr de Visual Basic, para los que no saben la función busca una cadena dentro de otra y si la encuentra retorna la posicion de su primer caracter, si no retorna -1 (en este caso)

Nota: Para aplicar la función en un archivo binario necesitas pasar las variables
Código:
  int iCadena=strlen(cadena);
  int iNecesitada=strlen(necesitada);

Como parámetro en la función
Código:
int instr(char *cadena,char *necesitada,int iCadena,int iNecesitada)
Y en vez de usar strcmp usar memcmp...
Bueno aquí la función
Código:
/**********************
* Instr o Strpos      *
* Coder: Linkgl       *
* Greatz: The Swash   *
**********************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//prototipo
int instr(char *cadena,char *necesitada);

//->uso
int main()
{
  int x=instr("linkholalink","hola");
  printf("%d",x);
  return 0;
}

//funcion
int instr(char *cadena,char *necesitada)
{
  int iCadena=strlen(cadena);
  int iNecesitada=strlen(necesitada);
  int i;
  char *temp=(char *)malloc(iNecesitada);
  for(i=0;i<iCadena*iNecesitada;i++)
  {
    memcpy(temp,cadena+i,iNecesitada);
    if(strcmp((char *)necesitada,(char *)temp)==0)
      return i+1;
  }
  return -1;
}//Compilado en Mingw - IDE: Dev C++

Retorna la posicion en la que se encuentra la cadena, en este caso nos retorna 5 y si no la encuentra retorna -1

Comentarios sugerencias y críticas en los comentarios!.

No hay comentarios:

Publicar un comentario