Buenas. Estoy programando una cosa que ya programé hace unas semanas. Lo deprimente es que en aquel entonces conseguí hacerlo, pero ahora me salta error. Intento buscar una cadena de texto determinada dentro de un texto. Mi programa es así:
[FONT=Fixedsys]function [r]=BBusca_cadena(texto, texto_b)
j=1;
k=1;
while ( j<=length(texto_b) )
while ( k<=length(texto) )
if texto(k)==texto_b(j)
k=k+1;
j=j+1;
if j==2
enc=k;
end
else
k=k+1;
enc=-1;
end
end
end
r=enc;
end[/FONT]
El programa debería devolver el valor r=enc, que indica la posición donde comienza la cadena buscada dentro del texto (si es que la encuentra).
Mi llamada a la función es:
>> BBusca_cadena('ABCHOLAABC', 'HOLA')
Y el error que obtengo es:
[FONT=Fixedsys]??? Attempted to access texto_b(5); index out of bounds because numel(texto_b)=4.
Error in ==> BBusca_cadena at 6
if texto(k)==texto_b(j)[/FONT]
Sé que me está diciendo que estoy intentando acceder a una posición que no existe, pero no entiendo por qué; el bucle while debería terminar.
Por favor, que alguien me ilumine!
Saludos.
[FONT=Fixedsys]function [r]=BBusca_cadena(texto, texto_b)
j=1;
k=1;
while ( j<=length(texto_b) )
while ( k<=length(texto) )
if texto(k)==texto_b(j)
k=k+1;
j=j+1;
if j==2
enc=k;
end
else
k=k+1;
enc=-1;
end
end
end
r=enc;
end[/FONT]
El programa debería devolver el valor r=enc, que indica la posición donde comienza la cadena buscada dentro del texto (si es que la encuentra).
Mi llamada a la función es:
>> BBusca_cadena('ABCHOLAABC', 'HOLA')
Y el error que obtengo es:
[FONT=Fixedsys]??? Attempted to access texto_b(5); index out of bounds because numel(texto_b)=4.
Error in ==> BBusca_cadena at 6
if texto(k)==texto_b(j)[/FONT]
Sé que me está diciendo que estoy intentando acceder a una posición que no existe, pero no entiendo por qué; el bucle while debería terminar.
Por favor, que alguien me ilumine!
Saludos.
Comentario