Encontrar subcadena (20 puntos) (c versión)

Esta pregunta requiere una simple función de la cadena de búsqueda.

interfaz de definición de función:
char * Buscar (S char *, char * T);

Subcadena función de búsqueda para encontrar la cadena s t, la dirección de retorno de la primera sub-cadena t en s. Si no lo encuentra, se devuelve NULL.

Ejemplos de procedimientos de prueba árbitros:
#include <stdio.h>
#define la MAXS 30

Buscar * char (S char *, char T);
desierta la ReadString (S char []); /
ref proporcionado, los detalles no son la lista * /

int main ()
{
char s [Maxs], t [Maxs], * puesto;

ReadString(s);
ReadString(t);
pos = search(s, t);
if ( pos != NULL )
    printf("%d\n", pos - s);
else
    printf("-1\n");

return 0;

}

/ * El código será incorporado aquí * /

Ejemplo de entrada 1:
en el lenguaje de programación C
RAM

Ejemplo de Salida 1:
10

Ejemplo de entrada 2:
en el lenguaje de programación C
. Aburrido aquí

Muestra Producto 2:
-1

char *search( char *s, char *t )
{
    int i, j, k;
	char *p = NULL;
    for (i = 0, j = 0; s[i] != '\0'; i++)
    {   
        k = i; j = 0;     
        // 不可以直接用i
        //初始化j, 保证t[j]每一次都是由第一个字母开始
        while (t[j] == s[k])
        {
            j++; k++;
            if (t[j] == '\0')
            {
            	p = &s[i];    //也可以直接return (s + i)
            	return p;
			}
        }
    }

    return p;
}
Publicado 24 artículos originales · ganado elogios 0 · Vistas 151

Supongo que te gusta

Origin blog.csdn.net/qq_45624989/article/details/105087667
Recomendado
Clasificación