Test Foro de elhacker.net SMF 2.1

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 (delphi) [Seleccionar]
program ContarCadenas;

{$APPTYPE CONSOLE}

uses
  SysUtils;

//funcion que cuenta los numeros de caracteres de la cadena
function ContarCaracteresCadenas: String;
var
Contar: String;
begin
Contar := 'Numeros de caracteres';
WriteLn ('Los caracteres contados son: ', Length (Contar));
ReadLn;
end;

//iniciamos el programa y llamamos a la funcion
begin
  ContarCaracteresCadenas;
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 (pascal) [Seleccionar]
uses strings,crt;
const cadena : PChar= 'casa';
begin
     clrscr;
     Writeln ('La cadena tiene: ',StrLen(cadena),' caracteres');
     readln;
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 (pascal) [Seleccionar]
program bla;

var palabra : string;

begin
   write ('introduce palabra: ');
   readln (palabra);
   writeln (length (palabra));
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
Cita de: 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.

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
Cita de: kamsky en 21 Julio 2008, 18:08 PM
Cita de: 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.

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
Cita de: E0N en 23 Julio 2008, 14:14 PM
Cita de: kamsky en 21 Julio 2008, 18:08 PM
Cita de: 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.

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 (pascal) [Seleccionar]

uses crt;
var a:string;
begin
  a:='cadena';
  write(ord(a[0]));
  readln;
end.
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..