Cadenas. Resumen

Una cadena es una lista (o secuencia) de caracteres en un orden particular. La secuencia completa de caracteres se trata como una sola entidad.

Un carácter es cualquier cosa que puede escribir en el teclado con una sola pulsación de tecla (letra, número, barra invertida o algún otro carácter).
Las cadenas pueden tener espacios: "¡Hola mundo!".
Una cadena vacía es una cadena que tiene 0 caracteres.
Pascal reconoce como cadenas todo lo escrito con apóstrofes (' ').
En Pascal, una cadena es de tipo string.

Puede escribir un nuevo valor en una cadena usando la declaración de entrada lectura(s); También puede simplemente asignar un valor de cadena a la variable, como   s := 'Python'; Puede determinar la longitud de una cadena usando la función incorporada length n := longitud(es)


Comparación de cadenas

Las cadenas se pueden comparar entre sí al igual que los números. Puedes determinar cuál de las líneas es mayor, cuál es menor.

Al comparar cadenas, se comparan los códigos de caracteres. Hay docenas, si no cientos, de codificaciones de caracteres. La forma más fácil de entender este concepto es entender uno de los más simples, ASCII (lea aquí).  
Es necesario comprender que en las codificaciones modernas, tanto las letras rusas como las inglesas están ordenadas alfabéticamente, los números también van de menor a mayor. 
Por ejemplo, en la tabla de códigos ASCII, el código de la letra inglesa 'A' - 65, letras 'a' - 97, dígito '0' tiene el código 48. Las letras rusas se encuentran en la parte extendida de la tabla de códigos ASCII (números del 128 al 255). Las mayúsculas van antes (es decir, tienen un código más pequeño) que las minúsculas.
En la mayoría de las tablas de codificación utilizadas, los patrones son los mismos, las letras minúsculas son posteriores a las mayúsculas, los números son anteriores a las letras y las letras rusas son posteriores a las inglesas.

Por ejemplo: "locomotora"  < "steamboat", porque las palabras difieren en la quinta letra y "en" < "x".

Desafortunadamente, no hay ninguna función en Pascal que permita leer múltiples líneas separadas por espacios de una sola línea. Para hacer esto, tienes que escribir tu propia función: variables, w: cadena; i, j, ind: entero; a: matriz de cadena; comenzar readln(s); setlength(a, longitud(es)); yo := 1; ind := 0; mientras yo < longitud (es) hacer comenzar while (i < longitud(es)) y ('' + s[i] = ' ') do i += 1; j := yo + 1; w := '' + s[i]; mientras que (j < longitud(es)) y ('' +s[j] <> ' ') comienzan w += s[j]; j += 1; fin; a[ind] := w; ind += 1; yo := j; fin; escribe(a[0], a[1]); fin.

Como resultado, obtenemos una matriz de cadenas.

Las cadenas se pueden sumar usando el signo "+". Esta operación se denomina concatenación de cadenas o concatenación
Por ejemplo,  s := 'Hola, '; s1 := 'mundo'; escribirln(s + s1); La pantalla mostrará la frase "Hola mundo" (sin comillas).

Hacer referencia a índices de fila
Cada carácter de una cadena tiene su propio número (llamado índice), y la indexación en el lenguaje de programación Pascal comienza desde uno. Es decir, el primer carácter tiene índice 1, el segundo tiene índice 2 y así sucesivamente.
Se puede acceder a los caracteres de cadena mediante índices, que se indican entre corchetes s[i].
 
Ejemplo

PD Muchos métodos de cadena en PascalABC.NET asumen que las cadenas están indexadas desde cero. No usaremos métodos de cadena que funcionen con índices basados ​​en cero por el momento. Hay reemplazos equivalentes para estos con funciones externas que asumen que las filas están indexadas desde 1. 
 

Cadena S H e l l o
Índice S[1] S[2] S[3] S[4] S[5]
Dado que se puede acceder a un carácter por índice, puede usar un bucle variable para iterar sobre todos los caracteres, lo que tomará posibles valores de índice. Por ejemplo, un programa que muestra todos los códigos de caracteres de la cadena s se vería así for i := 1 to length(s) do escribir(s[i], ord(s[i])) Explicaciones para el programa:
1) La función length(s) encuentra la longitud de una cadena. El índice del primer carácter es 1 y el índice del último es longitud(es). La variable de bucle i solo tomará valores de 1 a longitud(es).
2) En cada línea, primero se mostrará el símbolo en sí y luego su código, que es devuelto por la función integrada ord()

La misma enumeración se puede escribir más corta: para c en s do      writeln(c, ord(c)); En este fragmento, el encabezado del ciclo recorre todos los caracteres s, colocándolos a su vez en la variable c.

La peculiaridad de Pascal cuando se trabaja con cadenas es que las cadenas son objetos mutables. En otras palabras, podemos cambiar caracteres individuales de una cadena.
Por ejemplo, la siguiente instrucción funcionará s[5] := 'a'; También puede componer una nueva cadena a partir de los caracteres con los cambios necesarios.
Por ejemplo, un programa que reemplaza todos los caracteres 'a' a los caracteres 'b' se verá así: lectura(s);     for i := 1 to length(s) do begin         si s[i] = 'a'entonces s[i] := 'b';     fin; escritura(s); En este ejemplo, recorremos todos los caracteres de la cadena s. En el cuerpo del bucle, comprobamos el valor de la variable s[i]: si el carácter coincide con el carácter 'a', lo reemplazamos con 'b'.