Pascal/Turbo Pascal - Ayuda con función de manejo de cadena caracteres

   
Vista:

Ayuda con función de manejo de cadena caracteres

Publicado por Horacio (53 intervenciones) el 04/06/2013 17:51:44
hola gente del foro,mi consulta es me podrían ayudar a hacer una funcion que devuelva que cantidad de veces se repite en una cadena un substring;por ejemplo.

function cantidadOcurrencias(str:string;prefix:string):integer;
var
begin

end;


str ---------> 'Hola carlos, como estas?'
prefix------> 'car'

la funcion retorne ---> 1

se que existe la funcion pos() pero retorna la 1er ocurrencia
desde ya muchas gracias a quien me pueda ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con función de manejo de cadena caracteres

Publicado por Horacio (53 intervenciones) el 04/06/2013 22:05:11
aca les dejo una implementacion de la funcion pinta que esta bien,no esta programa a prueba de tontos ya que no tiene validaciones como que la longitud del prefijo sea menor que la cadena,etc.si alguien puede echarle un mirada,gracias

link : http://pastebin.com/QENsHpZM
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con función de manejo de cadena caracteres

Publicado por ramon (2072 intervenciones) el 05/06/2013 12:09:30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
{A ver si esto sirve mira en este caso la palabra a buscar puede ser pedro pero también puede
 ser Pedro para la comprobación no es igual  por eso lo convierto todo a mayúsculas puesto
que la frase no cambia}
 
program cuentapa;
 uses
   crt;
  type
    string40 = string[40];
   var
     texto : string;
     x, y, i, apari : integer;
 
    function apariciones(tex : string; apar : string40) : integer;
    begin
       apari := 0;
       apariciones := 0;
       texto := copy(tex,1,length(tex));
       i := 1;
     repeat
          if upcase(texto[i]) = upcase(apar[1]) then
          begin
             x := 0;
             for y := 1 to length(apar) do
             begin
                if upcase(texto[(i - 1) + y]) = upcase(apar[y]) then
                x := x + 1;
             end;
             if x = length(apar) then
             begin
                apari := apari + 1;
                i := i + x - 1;
             end;
          end;
          i := i + 1;
      until i > length(texto);
      apariciones := apari;
     end;
 
 
   begin
        clrscr;
        writeln('  Las aparicionas son : ',apariciones('San Pedro tenia un' +
        ' perro que se llamava pedro pero y si pedro','Pedro'));
        readkey;
   end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ayuda con función de manejo de cadena caracteres

Publicado por Horacio (53 intervenciones) el 05/06/2013 15:09:33
muchas gracias Ramon por la ayuda me sirvió la funcion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar