Pascal's strings have become popular thanks to one specific but huge influential Pascal implementation called UCSD. So UCSD strings are the best term. This is the same implementation that made popular bytecode interpreters.
In general, this is not one specific type, but the basic principle of having a size preceded by character data. This allows you to get the length of the constant operation (O (1)) instead of scanning character data for a null character.
Not all Pascals have used this concept. IIRC, the original (seventieth) convention was to space fill the selection and scan backward for a character without a space (which makes line breaks impossible). Moreover, since the software was mainly used in isolation, all sorts of schemes were used, often based on what was beneficial for this implementation / architecture.
The most popular dialects from Borland (Turbo Pascal, Delphi and Free Pascal) are usually based on the UCSD dialect and therefore have pascal strings, Delphi currently has 5 such strings. (short / ansi / wide / unicode / open)
On the other hand, this means that in the loop you need additional index-based checking to check the end of the line.
So, instead, by copying the line using
while (p^) do begin P^=p2^; inc(p) inc(p2); end;
which is completely equivalent
while (*s++ = *t++);
in C when using the optimizing compiler.
you need to do, for example.
while (len>0) do begin p^:=p2^; inc(p) inc(p2); dec(len); end;
or even
i:=1; while (i<=len) do begin p[i]:=p2[i]; inc(i); end;
This has led to a slightly larger number of instructions in the Pascal string chain than the equivalent zero-terminated string, and adds another value in real time. In addition, UCSD was the language of the bytecode interpreter (p-code), and the latest code based on the pascal string is “safe”.
In the case of the architecture that built the post increment (++) statements (for example, PDP-8.11 C was designed for the original), the version of the pointer was even cheaper, especially without optimization. Currently, compiler optimization can easily detect any of these constructs and transform them into the best.
More importantly, since the early 1990s, security has become more important and, mainly relying solely on the null terminated strings property, has been disapproved, as small errors in validation can cause potential buffer overflow problems. C and its standards, therefore, did not approve of the use of the old string, and now use the "-n-" versions of old string routines (strNcpy, etc.) that require a maximum length. This adds the same additional real-time value, similar to length, for example, as the manually-controlled principle of Pascal strings, where the programmer must take care of passing the length (or maximum buffer size for C-N functions). Pascal strings still have the advantage of moving to the last occupied char in O (1) operation and the fact that there are no forbidden characters.
Length prefix strings are also widely used in file format, because obviously the number of bytes to read ahead is useful.