Página 1 de 1

Función StringInStr

Publicado: 25 Jun 2014, 23:34
por Pink
Bueno ando con ganas de empezar en C así que me arme esta función es parecida a StringInStr de AutoIt o parecido a Pos de delphi(creo). No esta optimizado.

Es de indice 0. (la Menor posición valida)
En caso de algún error o no encontrase la cadena muestra -1.
int StringInStr(char sString[],char sFind[])

{
    int i=0;
    int iPost=0;
    int lensFind=strlen(sFind);
    int lensString=strlen(sString);

    if (lensFind>lensString)
    {
        return -1;
    }

    for (i=0; i<lensString; i++)
    {
        if (sString[i]==sFind[iPost])
        {

            iPost++;
            if (iPost==lensFind)
            {
                return i-lensFind+1;
                break;

            }
        }
        else
        {

            iPost=0;

        }

    }

    if (iPost==lensFind)
    {
        return i-lensFind+1;
    }
    else
    {

        return -1;
    }
}
Uso:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int StringInStr(char sString[],char sFind[]);
int main()
{
    char sString1[]="Hola Yo Soy Pink";
    char sFind2[]="Soy Pink";
    printf("Posicion: %d\n",StringInStr(sString1,sFind2));

    return 0;
}

Código: Seleccionar todo

Salida:
Posición: 8

Saludos

Re: Función StringInStr

Publicado: 26 Jun 2014, 01:53
por crack81
se ve bien olle pink creo que no era necesario poner el ultimo if-else ya que estaria rearfimando algo ya hecho

Re: Función StringInStr

Publicado: 26 Jun 2014, 05:48
por _ROOTt_
bonito pink

gracias

saludos

Re: Función StringInStr

Publicado: 26 Jun 2014, 13:54
por Pink
Si. o mas bien no.

yo la dejaría mas bien sin el return antes del break asi el ultimo else si se usa. pero como ya la había posteado me dio flojera corregirla.

Saludos