Fortran - Karakter
Bahasa Fortran dapat memperlakukan karakter sebagai karakter tunggal atau string yang berdekatan.
Karakter dapat berupa simbol yang diambil dari himpunan karakter dasar, yaitu dari huruf, angka desimal, garis bawah, dan 21 karakter khusus.
Konstanta karakter adalah string karakter bernilai tetap.
Tipe data intrinsik charactermenyimpan karakter dan string. Panjang string dapat ditentukan denganlenpenentu. Jika tidak ada panjang yang ditentukan, itu adalah 1. Anda dapat merujuk karakter individu dalam string yang mengacu pada posisi; karakter paling kiri ada di posisi 1.
Deklarasi Karakter
Mendeklarasikan data tipe karakter sama dengan variabel lain -
type-specifier :: variable_name
Sebagai contoh,
character :: reply, sex
Anda dapat menetapkan nilai seperti,
reply = ‘N’
sex = ‘F’
Contoh berikut menunjukkan deklarasi dan penggunaan tipe data karakter -
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
Ketika Anda mengkompilasi dan menjalankan program di atas, ini menghasilkan hasil sebagai berikut -
Here is Mr. Rowan Atkinson
A big hello from Mr. Bean
Penggabungan Karakter
Operator penggabungan //, menggabungkan karakter.
Contoh berikut menunjukkan ini -
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
Ketika Anda mengkompilasi dan menjalankan program di atas, ini menghasilkan hasil sebagai berikut -
Here is Mr.Rowan Atkinson
A big hello from Mr.Bean
Beberapa Fungsi Karakter
Tabel berikut menunjukkan beberapa fungsi karakter yang umum digunakan bersama dengan deskripsinya -
Sr Tidak | Deskripsi fungsi |
---|---|
1 | len(string) Ini mengembalikan panjang string karakter |
2 | index(string,sustring) Ia menemukan lokasi substring dalam string lain, mengembalikan 0 jika tidak ditemukan. |
3 | achar(int) Ini mengubah integer menjadi karakter |
4 | iachar(c) Ini mengubah karakter menjadi integer |
5 | trim(string) Ini mengembalikan string dengan sisa kosong dihapus. |
6 | scan(string, chars) Ini mencari "string" dari kiri ke kanan (kecuali back = .true.) Untuk kemunculan pertama karakter apa pun yang terkandung dalam "chars". Ini mengembalikan integer yang memberikan posisi karakter itu, atau nol jika tidak ada karakter dalam "chars" yang ditemukan. |
7 | verify(string, chars) Ini memindai "string" dari kiri ke kanan (kecuali back = .true.) Untuk kemunculan pertama karakter apa pun yang tidak terdapat dalam "karakter". Ini mengembalikan integer yang memberikan posisi karakter itu, atau nol jika hanya karakter dalam "chars" yang ditemukan |
8 | adjustl(string) Membiarkan membenarkan karakter yang terkandung dalam "string" |
9 | adjustr(string) Itu benar membenarkan karakter yang terkandung dalam "string" |
10 | len_trim(string) Ini mengembalikan integer yang sama dengan panjang "string" (len (string)) dikurangi jumlah trailing blank |
11 | repeat(string,ncopy) Ini mengembalikan string dengan panjang sama dengan "ncopy" dikalikan panjang "string", dan berisi "ncopy" salinan gabungan dari "string" |
Contoh 1
Contoh ini menunjukkan penggunaan file index fungsi -
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
Ketika Anda mengkompilasi dan menjalankan program di atas, ini menghasilkan hasil sebagai berikut -
The word character found at position 25
in text : The intrinsic data type character stores characters and strings.
Contoh 2
Contoh ini menunjukkan penggunaan file trim fungsi -
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
Ketika Anda mengkompilasi dan menjalankan program di atas, ini menghasilkan hasil sebagai berikut -
Here isMr. Rowan Atkinson
Here isMr. Rowan Atkinson
Contoh 3
Contoh ini menunjukkan penggunaan achar fungsi -
program testingChars
implicit none
character:: ch
integer:: i
do i = 65, 90
ch = achar(i)
print*, i, ' ', ch
end do
end program testingChars
Ketika Anda mengkompilasi dan menjalankan program di atas, ini menghasilkan hasil sebagai berikut -
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
Memeriksa Urutan Leksikal Karakter
Fungsi berikut menentukan urutan leksikal karakter -
Sr Tidak | Deskripsi fungsi |
---|---|
1 | lle(char, char) Membandingkan apakah karakter pertama secara leksikal kurang dari atau sama dengan karakter kedua |
2 | lge(char, char) Membandingkan apakah karakter pertama secara leksikal lebih besar dari atau sama dengan karakter kedua |
3 | lgt(char, char) Membandingkan apakah karakter pertama secara leksikal lebih besar dari yang kedua |
4 | llt(char, char) Membandingkan apakah karakter pertama secara leksikal kurang dari yang kedua |
Example 4
Fungsi berikut mendemonstrasikan penggunaan -
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
Ketika Anda mengkompilasi dan menjalankan program di atas, ini menghasilkan hasil sebagai berikut -
a is lexically greater than A
B is lexically greater than A
A is lexically less than a
A is lexically less than B