Buscar subcadena
De Ejercicios
Enunciado
Implementar un algoritmo que lea dos cadenas caracteres e indique si la segunda cadena está contenida en la primera.
Para las siguientes dos cadenas el algoritmo debería indicar que SI está contenida.
Vector 1: B U E N O S D I A S T E N G A U S T E D . Vector 2: D I A S .
Soluciones
Programa en Matlab
%PROGRAMA BuscarSubcadena %DESCRIPCIÓN: Lee dos cadenas caracteres (carácter a carácter) que contenga una frase terminada en punto, e indica si la segunda está contenida en la primera. %ENTRADAS: Dos cadenas de caracteres. %SALIDAS: Mensaje de confirmación. %VARIABLES: % vector1, vector2: ARRAY DE CARÁCTERES (o cadena de caracteres) % contiene: LÓGICO % pos, diferencia, conta, n: ENTEROS % Leer frases vector1 = input('Introduzca primera frase: ','s'); vector2 = input('Introduzca segunda frase: ','s'); %Buscar si la segunda cadena está contenida en la primera contiene = false; pos = 1; diferencia = length(vector1)-length(vector2); while pos<=diferencia && ~contiene if vector1(pos)==vector2(1), conta=0; n=1; while n<length(vector2) && vector1(pos+n)==vector2(1+n), n=n+1; end if n==length(vector2), contiene=true; end end pos = pos + 1; end %Mostrar el resultado de la búsqueda if contiene disp('La segunda frase SI está contenida en la primera.'); else disp('La segunda frase NO está contenida en la primera.'); end