Falando sobre a realização strstr ()

strstr string matching

  1. Encontre a mesma string na primeira string que a segunda string, se houver, retorne o primeiro endereço da segunda string na primeira string.

  2. Implementação de função

     char* my_strstr(char* str, char* sub)
     {
     	while (*str)
     	{
     		if (*str != *sub)
     		{
     			str++;
     		}
     		else
     		{
     			char* stri = str;
     			char* subi = sub;
     			while (*subi && *stri == *subi && *stri)
     			{
     				subi++;
     				stri++;
     			}
     			if (*stri == "\0")
     			{
     				return NULL;
     			}
     			if (*subi == '\0')
     			{
     				return str;
     			}
     			else
     			{
     				str++;
     			}
     		}
     	}
     	return NULL;
     }
    

      Primeiro, combine a primeira letra da segunda string na primeira string. Se não for, mova o ponteiro da primeira string para trás. Se for igual, registre-o na primeira string e o endereço na segunda string é o caractere comparado por caractere a partir desses dois ponteiros. A condição de loop é que uma das duas strings não pode ficar vazia sozinha, e os caracteres nas duas strings são iguais e essas três condições são atendidas. Dois ponteiros ++, se a primeira string terminar antes , ou seja, não há uma segunda string na primeira string e NULL pode ser retornado antecipadamente. Se a segunda string estiver vazia, significa que foi encontrada. Caso contrário, ela não foi encontrada e, em seguida, pesquise na substring após a primeira corda.

Acho que você gosta

Origin blog.csdn.net/weixin_43580319/article/details/112141134
Recomendado
Clasificación