Язык Фортрана может обрабатывать символы как отдельные символы или смежные строки.
Символами могут быть любые символы, взятые из базового набора символов, т. Е. Из букв, десятичных цифр, подчеркивания и 21 специального символа.
Символьная константа — это символьная строка с фиксированным значением.
Внутренний символ типа данных хранит символы и строки. Длина строки может быть указана спецификатором len . Если длина не указана, она равна 1. Вы можете ссылаться на отдельные символы в строке, ссылаясь на позицию; самый левый символ находится в позиции 1.
Декларация персонажа
Объявление данных символьного типа аналогично другим переменным —
type-specifier :: variable_name
Например,
character :: reply, sex
Вы можете назначить значение, как,
reply = ‘N’ sex = ‘F’
В следующем примере демонстрируется объявление и использование символьного типа данных —
program hello implicit none character(len = 15) :: surname, firstname character(len = 6) :: title character(len = 25)::greetings title = 'Mr. ' firstname = 'Rowan ' surname = 'Atkinson' greetings = 'A big hello from Mr. Bean' print *, 'Here is ', title, firstname, surname print *, greetings end program hello
Когда вы компилируете и запускаете вышеуказанную программу, она дает следующий результат —
Here is Mr. Rowan Atkinson A big hello from Mr. Bean
Конкатенация персонажей
Оператор конкатенации //, объединяет символы.
Следующий пример демонстрирует это —
program hello implicit none character(len = 15) :: surname, firstname character(len = 6) :: title character(len = 40):: name character(len = 25)::greetings title = 'Mr. ' firstname = 'Rowan ' surname = 'Atkinson' name = title//firstname//surname greetings = 'A big hello from Mr. Bean' print *, 'Here is ', name print *, greetings end program hello
Когда вы компилируете и запускаете вышеуказанную программу, она дает следующий результат —
Here is Mr.Rowan Atkinson A big hello from Mr.Bean
Некоторые функции персонажа
В следующей таблице приведены некоторые часто используемые символьные функции вместе с описанием —
Sr.No | Описание функции |
---|---|
1 |
Len (строка) Возвращает длину строки символов |
2 |
Индекс (строка, sustring) Он находит расположение подстроки в другой строке, возвращает 0, если не найден. |
3 |
Ахар (целое) Преобразует целое число в символ |
4 |
iachar (с) Преобразует символ в целое число |
5 |
подрезать (строка) Возвращает строку с удаленными конечными пробелами. |
6 |
сканирование (строка, символы) Он ищет «строку» слева направо (если только не = = .true.) Для первого вхождения любого символа, содержащегося в «символах». Возвращает целое число, указывающее позицию этого символа, или ноль, если ни один из символов в «символах» не был найден. |
7 |
проверить (строка, символы) Он сканирует «строку» слева направо (если только не задано = .true.) Для первого вхождения любого символа, не содержащегося в «символах». Возвращает целое число, указывающее позицию этого символа, или ноль, если были найдены только символы в «символах» |
8 |
adjustl (строка) Выравнивает по левому краю символы, содержащиеся в «строке» |
9 |
adjustr (строка) Правильно оправдывает символы, содержащиеся в «строке» |
10 |
len_trim (строка) Возвращает целое число, равное длине строки (len (string)) минус количество конечных пробелов |
11 |
повтор (строка, ncopy) Он возвращает строку с длиной, равной «ncopy», умноженной на длину «строки», и содержащей «ncopy» сцепленные копии «строки» |
Len (строка)
Возвращает длину строки символов
Индекс (строка, sustring)
Он находит расположение подстроки в другой строке, возвращает 0, если не найден.
Ахар (целое)
Преобразует целое число в символ
iachar (с)
Преобразует символ в целое число
подрезать (строка)
Возвращает строку с удаленными конечными пробелами.
сканирование (строка, символы)
Он ищет «строку» слева направо (если только не = = .true.) Для первого вхождения любого символа, содержащегося в «символах». Возвращает целое число, указывающее позицию этого символа, или ноль, если ни один из символов в «символах» не был найден.
проверить (строка, символы)
Он сканирует «строку» слева направо (если только не задано = .true.) Для первого вхождения любого символа, не содержащегося в «символах». Возвращает целое число, указывающее позицию этого символа, или ноль, если были найдены только символы в «символах»
adjustl (строка)
Выравнивает по левому краю символы, содержащиеся в «строке»
adjustr (строка)
Правильно оправдывает символы, содержащиеся в «строке»
len_trim (строка)
Возвращает целое число, равное длине строки (len (string)) минус количество конечных пробелов
повтор (строка, ncopy)
Он возвращает строку с длиной, равной «ncopy», умноженной на длину «строки», и содержащей «ncopy» сцепленные копии «строки»
Пример 1
В этом примере показано использование функции индекса —
program testingChars implicit none character (80) :: text integer :: i text = 'The intrinsic data type character stores characters and strings.' i=index(text,'character') if (i /= 0) then print *, ' The word character found at position ',i print *, ' in text: ', text end if end program testingChars
Когда вы компилируете и запускаете вышеуказанную программу, она дает следующий результат —
The word character found at position 25 in text : The intrinsic data type character stores characters and strings.
Пример 2
Этот пример демонстрирует использование функции обрезки —
program hello implicit none character(len = 15) :: surname, firstname character(len = 6) :: title character(len = 25)::greetings title = 'Mr.' firstname = 'Rowan' surname = 'Atkinson' print *, 'Here is', title, firstname, surname print *, 'Here is', trim(title),' ',trim(firstname),' ', trim(surname) end program hello
Когда вы компилируете и запускаете вышеуказанную программу, она дает следующий результат —
Here isMr. Rowan Atkinson Here isMr. Rowan Atkinson
Пример 3
Этот пример демонстрирует использование функции ачар —
program testingChars implicit none character:: ch integer:: i do i = 65, 90 ch = achar(i) print*, i, ' ', ch end do end program testingChars
Когда вы компилируете и запускаете вышеуказанную программу, она дает следующий результат —
65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z
Проверка лексического порядка символов
Следующие функции определяют лексическую последовательность символов —
Sr.No | Описание функции |
---|---|
1 |
lle (char, char) Сравнивает, является ли первый символ лексически меньше или равен второму |
2 |
lge (char, char) Сравнивает, является ли первый символ лексически большим или равным второму |
3 |
ЛГТ (символ, символ) Сравнивает, является ли первый символ лексически большим, чем второй |
4 |
llt (char, char) Сравнивает, является ли первый символ лексически меньше, чем второй |
lle (char, char)
Сравнивает, является ли первый символ лексически меньше или равен второму
lge (char, char)
Сравнивает, является ли первый символ лексически большим или равным второму
ЛГТ (символ, символ)
Сравнивает, является ли первый символ лексически большим, чем второй
llt (char, char)
Сравнивает, является ли первый символ лексически меньше, чем второй
Пример 4
Следующая функция демонстрирует использование —
program testingChars implicit none character:: a, b, c a = 'A' b = 'a' c = 'B' if(lgt(a,b)) then print *, 'A is lexically greater than a' else print *, 'a is lexically greater than A' end if if(lgt(a,c)) then print *, 'A is lexically greater than B' else print *, 'B is lexically greater than A' end if if(llt(a,b)) then print *, 'A is lexically less than a' end if if(llt(a,c)) then print *, 'A is lexically less than B' end if end program testingChars
Когда вы компилируете и запускаете вышеуказанную программу, она дает следующий результат —