Lección 12 · 12 de 20
Cadenas de texto · Pascal
Trabaje con textos en Pascal: unir con +, Length, Copy, Pos, UpperCase y LowerCase para separar el usuario y el dominio de un correo.

Las cadenas se unen con `+`: first + ' ' + last da Ada Lovelace. `Length` da su número de caracteres, 12.
Cada carácter tiene su posición, que empieza en 1: first[1] es 'A', y así salen las iniciales. `UpperCase` y `LowerCase`, de SysUtils, devuelven una copia en mayúsculas o en minúsculas; la cadena original no cambia.
`Pos(trozo, texto)` busca una cadena dentro de otra y da la posición donde empieza: la @ está en la 13. Si no la encuentra, devuelve 0, como ocurre con 'xyz'.
`Copy(texto, inicio, cuántos)` recorta un trozo. Con la posición de la @, Copy(email, 1, at - 1) toma lo que hay delante (el usuario) y Copy(email, at + 1, Length(email) - at), lo que hay detrás (el dominio).
+ solo une cadenas: para añadir un número hay que convertirlo antes con `IntToStr` (o con FloatToStr si es real). WriteLn, en cambio, acepta números directamente si se separan con comas.
Código · main.pas
program main;uses SysUtils;var first, last, full, email, user, domain: String; at: Integer;begin first := 'Ada'; last := 'Lovelace'; // + joins strings. full := first + ' ' + last; WriteLn('Full name: ', full, ' (', Length(full), ' characters)'); // Characters are numbered from 1. WriteLn('Initials: ', first[1], last[1]); WriteLn('In capitals: ', UpperCase(full)); WriteLn('In small letters: ', LowerCase(full)); // Pos finds a piece of text; Copy(s, start, count) cuts one out. email := 'ada.lovelace@example.com'; at := Pos('@', email); user := Copy(email, 1, at - 1); domain := Copy(email, at + 1, Length(email) - at); WriteLn('The @ is at position ', at); WriteLn('User: ', user, ' | Domain: ', domain); WriteLn('Position of "xyz": ', Pos('xyz', email)); // IntToStr turns a number into text, ready to join. WriteLn('Order ' + IntToStr(1024) + ' for ' + first);end.Salida · fpc main.pas && ./main
Full name: Ada Lovelace (12 characters) Initials: AL In capitals: ADA LOVELACE In small letters: ada lovelace The @ is at position 13 User: ada.lovelace | Domain: example.com Position of "xyz": 0 Order 1024 for Ada
Para recordar
+une cadenas yLengthcuenta sus caracteres.- Las posiciones empiezan en 1:
s[1]es el primer carácter. Posbusca (y da0si no encuentra);Copyrecorta.IntToStrconvierte un número en texto.
Ejercicio
A partir de domain, saque con Pos y Copy el nombre de la empresa (example) y la extensión (com), y escriba el usuario en mayúsculas.