Библиотека работы со строками String
mikroPascal PRO для ARM включает библиотеку, которая автоматизирует задачи, связанные с строкой.
Функции библиотеки
- memchr
- memcmp
- memcpy
- memmove
- memset
- strcat
- strcat2
- strchr
- strcmp
- strcpy
- strlen
- strncat
- strncpy
- strspn
- strncmp
- strstr
- strcspn
- strpbrk
- strrchr
- ltrim
- rtrim
- strappendpre
- strappendsuf
- length
memchr
Прототип |
function memchr(p : ^byte; ch : byte; n : word) : dword; |
---|---|
Описание |
Функция находит первое вхождение байта ch в начальных n словах области памяти, начиная с адреса p. Функция возвращает смещение этого события из адреса памяти p или 0xFFFFFFFF, если ch не был найден. |
Пример |
txt := 'mikroElektronika'; res := memchr(@txt, 'e', 16); // Пример locates first occurrence of the letter 'e' in the string 'txt' in the first 16 characters of the string |
memcmp
Прототип |
function memcmp(p1, p2 : ^byte; n : word) : integer; |
---|---|
Описание |
Функция возвращает положительное, отрицательное или нулевое значение, указывающее связь первых n слов областей памяти, начиная с адресов p1 и p2. Величина значение < 0 s1 "меньше, чем" s2 = 0 s1 "равно" s2 > 0 s1 "больше чем" s2 Значение, возвращаемое функцией, определяется разницей между значениями первой пары слов, которые различаются в сравнении строк. |
Пример |
txt := 'mikroElektronika'; txt_sub := 'mikro'; res := memcmp(@txt, @txt_sub, 16); // returns 69, which is ASCII code of the first differing character - letter 'E' |
memcpy
Прототип |
procedure memcpy(p1, p2 : ^byte; nn : word); |
---|---|
Описание |
Функция копирует nn слов из области памяти, начиная с адреса p2, в область памяти, начиная с p1. Если эти буферы памяти перекрываются, функция memcpy не может гарантировать копирование слов перед их перезаписью. Если эти буферы перекрываются, используйте функцию memmove. |
Пример |
txt := 'mikroElektronika'; txt_sub := 'mikr'; memcpy(@txt+4, @txt_sub, 4); // string 'txt' will be populated with the first 4 characters of the 'txt_sub' string, beginning from the 4th character |
memmove
Прототип |
procedure memmove(p1, p2 : ^byte; nn : word); |
---|---|
Описание |
Функция копирует nn слов из области памяти, начиная с адреса p2, в область памяти, начиная с p1. Если эти буферы памяти перекрываются, функция Memmove гарантирует, что слова в p2 будут скопированы на p1 перед перезаписью. |
Пример |
txt := 'mikroElektronika'; txt_sub := 'mikr'; memmove(@txt+7, @txt_sub, 4); // string 'txt' will be populated with first 4 characters of the 'txt_sub' string, beginning from the 7th character |
memset
Прототип |
procedure memset(p : ^byte; character : byte; n : word); |
---|---|
Описание |
Функция заполняет первые n байтов в области памяти, начиная с адреса p со значением символа слова. |
Пример |
txt := 'mikroElektronika'; memset(@txt, 'a', 2); // routine will copy the character 'a' into each of the first 'n' characters of the string 'txt', |
strcat
Прототип |
procedure strcat(var s1, s2 : string); |
---|---|
Описание |
Функция добавляет значение строки s2 в строку s1 и завершает s1 с нулевым символом. |
Пример |
txt := 'mikroElektronika'; txt[3] := 0; strcat(txt, '_test'); // routine will append the '_test' at the place of the first null character, adding terminating null character to the result |
strcat2
Прототип |
procedure strcat2(var l1, s1, s2 : string); |
---|---|
Описание |
Процедура присоединяет строку s2 в конце строки s1 или к первому нулевому символу s1 и помещает результирующую строку в строку l. |
Пример |
txt := 'mikroElektronika'; txt_sub := '_Test'; l1 := string[21]; strcat2(l1, txt, txt_sub); // routine will adjoin strings txt and txt_sub and place the result into l; l = mikroElektronika_Test |
strchr
Прототип |
function strchr(var s : string; ch : byte) : dword; |
---|---|
Описание |
Функция ищет строку s для первого появления символа ch. Нулевой символ, завершающий s, не входит в поиск. |
Пример |
txt := 'mikroElektronika'; res := strchr(txt, 'E'); // routine will locate the character 'E' in the 'txt' string, and return the position of the character |
strcmp
Прототип |
function strcmp(var s1, s2 : string) : integer; |
---|---|
Описание |
Функция лексикографически сравнивает содержимое строк s1 и s2 и возвращает значение, указывающее их взаимосвязь: Величина значение < 0 s1 "меньше, чем" s2 = 0 s1 "равно" s2 > 0 s1 "больше чем" s2 Значение, возвращаемое функцией, определяется разницей между значениями первой пары слов, которые различаются в сравнении строк. |
Пример |
txt := 'mikroElektronika'; txt_sub := 'mikr'; res := strcmp(txt,txt_sub); // compares strings 'txt' and 'txt_sub' and returns returns a difference between the first differing characters, in this case 69 |
strcpy
Прототип |
procedure strcpy(var s1, s2 : string); |
---|---|
Описание |
Функция копирует значение строки s2 в строку s1 и добавляет нулевой символ в конец s1. |
Пример |
txt := 'mikroElektronika'; txt_sub := 'mikr'; strcpy(txt,txt_sub); // copies string 'txt_sub' to 'txt' |
strlen
Прототип |
function strlen(var s : string) : dword; |
---|---|
Описание |
Функция возвращает длину в словах строки s. Длина не включает нулевой завершающий символ. |
Пример |
txt := 'mikroElektronika'; res = strlen(txt); // calculates the length of the 'txt' string, result = 16 |
strncat
Прототип |
procedure strncat(var s1, s2 : string; size : word); |
---|---|
Описание |
Функция добавляет символы большого размера из строки s2 в строку s1 и завершает s1 с нулевым символом. Если s2 короче символов размера, s2 копируется до и включает нулевой завершающий символ. |
Пример |
txt := 'mikroElektronika'; txt_sub := 'mikr'; txt[5] := 0; strncat(txt,txt_sub,4); // routine appends first 4 characters from the string 'txt_sub' at the place of first null character in the 'txt' string |
strncpy
Прототип |
procedure strncpy(var s1, s2 : string; size : word); |
---|---|
Описание |
Функция копирует символы большинства размеров из строки s2 в строку s1. Если s2 содержит меньше символов, чем размер, s1 заполняется нулевыми символами до общей длины символов размера. |
Пример |
txt := 'mikroElektronika'; txt_sub := 'mikr'; strncpy(txt,txt_sub,4); // copies first 4 characters form the string 'txt_sub' to 'txt' |
strspn
Прототип |
function strspn(var s1, s2 : string) : dword; |
---|---|
Описание |
Функция ищет строку s1 для символов, не найденных в строке s2. |
Пример |
txt := 'mikroElektronika'; txt_sub := 'mikr'; res := strspn(txt,txt_sub); // routne returns 4 |
strncmp
Прототип |
function strncmp(var s1, s2 : string; len : word) : integer; |
---|---|
Описание |
Функция лексикографически сравнивает первые len-символы строк s1 и s2 и возвращает значение, указывающее их взаимосвязь: Величина значение < 0 s1 "меньше, чем" s2 = 0 s1 "равно" s2 > 0 s1 "больше чем" s2 Значение, возвращаемое функцией, определяется разницей между значениями первой пары слов, которые различаются в сравнении строк (в первых словах len). |
Пример |
txt := 'mikroElektronika'; txt_sub := 'mikr'; res := strncmp(txt_sub,txt,3); // compares the first 3 characters from the string 'txt' with the sting 'txt_sub' and returns a difference |
strstr
Прототип |
function strstr(var s1, s2 : string) : dword; |
---|---|
Описание |
Функция находит первое вхождение строки s2 в строке s1 (исключая оканчивающийся нулевой символ). |
Пример |
txt := 'mikroElektronika'; txt_sub := 'mikr'; res := strstr(txt, txt_sub); |
strcspn
Прототип |
function strcspn(var s1, s2 : string) : dword; |
---|---|
Описание |
Функция ищет строку s1 для любого из символов в строке s2. |
Пример |
txt := 'mikroElektronika'; txt_sub := 'mikr'; res := strcspn(txt_sub,txt); |
strpbrk
Прототип |
function strpbrk(var s1, s2 : string) : dword; |
---|---|
Описание |
Функция ищет s1 для первого вхождения любого символа из строки s2. Нулевой ограничитель не включен в поиск. Функция возвращает индекс совпадающего символа в s1. Если s1 не содержит символов из s2, функция возвращает 0xFFFFFFFF. |
Пример |
txt := 'mikroElektronika'; txt_sub := 'mikr'; res := strpbrk(txt_sub,txt); |
strrchr
Прототип |
function strrchr(var s : string; ch : byte) : dword; |
---|---|
Описание |
Функция ищет строку s для последнего вхождения символа ch. Нулевой символ, завершающий s, не входит в поиск. Функция возвращает индекс последнего ch, найденного в s; если совпадающий символ не найден, функция возвращает 0xFFFFFFFF. |
Пример |
txt := 'mikroElektronika'; res = strrchr(txt,'k'); // returns the index of the 'k' character of the 'txt' string |
ltrim
Прототип |
procedure ltrim(var astring : string); |
---|---|
Описание |
Процедура обрезает ведущие пространства строки. |
Пример |
txt := ' mikroE'; ltrim(txt); // trims the leading 2 spaces of the 'txt' string |
rtrim
Прототип |
procedure rtrim(var astring : string); |
---|---|
Описание |
Процедура обрезает конечные пробелы строки. |
Пример |
txt := 'mikroE '; rtrim(txt); // trims the trailing 2 spaces of the 'txt' string and adds terminating null character to the result |
strappendpre
Прототип |
procedure strappendpre(letter: char; var s1 : string); |
---|---|
Описание |
Процедура добавляет символ в начале строки. |
Пример |
txt := 'ikroE'; strappendpre('m',txt); // adds letter 'm' at the beginning of the 'txt' string |
strappendsuf
Прототип |
procedure strappendsuf(var s1 : string; letter : char); |
---|---|
Описание |
Процедура добавляет символ в конец строки. |
Пример |
txt := 'mikro'; strappendsuf('E',txt); // adds letter 'E' at the end of the 'txt' string |
length
Прототип |
function length(var s: string) : dword; |
---|---|
Описание |
Функция возвращает длину переданной строки. |
Пример |
txt := 'mikroE'; res = length(txt); // calculates and returns the length of the 'txt' string |