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