Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: juancho77 en 19 Julio 2008, 07:15 am



Título: Contar caracteres en strings de pascal
Publicado por: juancho77 en 19 Julio 2008, 07:15 am
Alguien sabe si existe alguna forma para hacer eso en pascal (NO delphi)?
Algo directo, alguna funcion de alguna unit o algo. Ya se como hacerlo por proc.

Me refiero a, por ejemplo:

numerodeletras:= funcionquecuentaletras(string); donde string es una palabra.

Si string='casa' debe devolver 4.

gracias


Título: Re: Contar caracteres en strings de pascal
Publicado por: d(-_-)b en 19 Julio 2008, 21:23 pm
Bueno, yo no uso Pascal y nunca lo eh usado, en pascal creo que seria lo mismo que en Delphi, no se, pero en modo consola se puede hacer asi.

Código
  1. program ContarCadenas;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. //funcion que cuenta los numeros de caracteres de la cadena
  9. function ContarCaracteresCadenas: String;
  10. var
  11. Contar: String;
  12. begin
  13. Contar := 'Numeros de caracteres';
  14. WriteLn ('Los caracteres contados son: ', Length (Contar));
  15. ReadLn;
  16. end;
  17.  
  18. //iniciamos el programa y llamamos a la funcion
  19. begin
  20.  ContarCaracteresCadenas;
  21. end.

no se, espero que te sirva.

saludos...


Título: Re: Contar caracteres en strings de pascal
Publicado por: cassiani en 19 Julio 2008, 23:17 pm
StrLen de strings

Código
  1. uses strings,crt;
  2. const cadena : PChar= 'casa';
  3. begin
  4.     clrscr;
  5.     Writeln ('La cadena tiene: ',StrLen(cadena),' caracteres');
  6.     readln;
  7. end.



Título: Re: Contar caracteres en strings de pascal
Publicado por: GroK en 20 Julio 2008, 03:30 am
Bueno, con length tambien servia, y no hay necesidad de llamar a una unit extra:

Código
  1. program bla;
  2.  
  3. var palabra : string;
  4.  
  5. begin
  6.   write ('introduce palabra: ');
  7.   readln (palabra);
  8.   writeln (length (palabra));
  9. end.

Saludos


Título: Re: Contar caracteres en strings de pascal
Publicado por: Lauta en 20 Julio 2008, 21:52 pm
Los strings en Pascal (según me explicaron este cuatrimestre en la facu XD) tienen en su primer posición (string[0]) la longitud de la cadena, obviamente en formato char, basta con validar ese valor y listo.


Título: Re: Contar caracteres en strings de pascal
Publicado por: kamsky en 21 Julio 2008, 18:08 pm
Los strings en Pascal (según me explicaron este cuatrimestre en la facu XD) tienen en su primer posición (string[0]) la longitud de la cadena, obviamente en formato char, basta con validar ese valor y listo.

el primer caracter de un String,se guarda en la posición 0 del array:

|  P  |  E  |  P  |  E  |

  0      1      2     3


Título: Re: Contar caracteres en strings de pascal
Publicado por: Mayhem en 23 Julio 2008, 06:02 am
Con la funcion length() tienes la cantidad de caracteres de un string, le pasas el string como parámetro y devuelve un int con la cantidad de caracteres...
Espero que te sirva...


  Saludos!!


Título: Re: Contar caracteres en strings de pascal
Publicado por: ~~ en 23 Julio 2008, 14:14 pm
Los strings en Pascal (según me explicaron este cuatrimestre en la facu XD) tienen en su primer posición (string[0]) la longitud de la cadena, obviamente en formato char, basta con validar ese valor y listo.

el primer caracter de un String,se guarda en la posición 0 del array:

|  P  |  E  |  P  |  E  |

  0      1      2     3

Eso es normalmente lo que se suele hacer, pero en pascal efectivamente un string tiene en su primera posición el número de caracteres que contiene y luego la palabra que quieras guardar, nunca me a dado por comprobarlo, pero me fío de mi profesor de universidad xDD


Título: Re: Contar caracteres en strings de pascal
Publicado por: juancho77 en 23 Julio 2008, 18:56 pm
gracias a todos. anduvo con length  :-*


Título: Re: Contar caracteres en strings de pascal
Publicado por: Lauta en 23 Julio 2008, 19:30 pm
Los strings en Pascal (según me explicaron este cuatrimestre en la facu XD) tienen en su primer posición (string[0]) la longitud de la cadena, obviamente en formato char, basta con validar ese valor y listo.

el primer caracter de un String,se guarda en la posición 0 del array:

|  P  |  E  |  P  |  E  |

  0      1      2     3

Eso es normalmente lo que se suele hacer, pero en pascal efectivamente un string tiene en su primera posición el número de caracteres que contiene y luego la palabra que quieras guardar, nunca me a dado por comprobarlo, pero me fío de mi profesor de universidad xDD

Yo lo quise comprobar, después de la respuesta de kamsky y cuando imprimía la posición 0 del string, no me aparecía, ni la longitud, ni la primer letra del string, sino un símbolo extraño... A veces un rombo, según la cadena que ingresaba cambiaba...


Título: Re: Contar caracteres en strings de pascal
Publicado por: El Antiguo en 30 Julio 2008, 07:25 am
Lauta, eso es porque es un valor tipo char. Usa la funcion ORD para imprimir el numero tipo byte que corresponde a ese caracter y veras que es la longitud de la cadena.

Código
  1. uses crt;
  2. var a:string;
  3. begin
  4.  a:='cadena';
  5.  write(ord(a[0]));
  6.  readln;
  7. end.
  8.  


Título: Re: Contar caracteres en strings de pascal
Publicado por: Beta69 en 18 Julio 2012, 06:27 am
program lenght;
uses crt;
var apeynom: ansiString;
begin
   clrscr;
   
   writeln('Funcion Length ');
   writeln;
   writeln('Inserte su nombre completo:  ');
   
   readln(apeynom);
   writeln;
   write(' Su nombre tiene    ');
   write( length(apeynom), '  letras');
   readkey;
   end.
   
Espero que te sirva..