Fortran - 英小文字->英大文字変換!

更新日時:


今回は、 Fortran95 で英文の小文字を全て大文字に変換する方法についてです。

0. 前提条件

  • LMDE2(Linux Mint Debian Edition 2; 64bit) での作業を想定。
  • GCC 6.3.0 (GFortran) でのコンパイルを想定。
  • Fortran には長けていないので、コードに誤りがあるかもしれない。

1. Fortran コードの作成

File: to_uppercase.f95

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
!****************************************************
! 英小文字->英大文字 変換
! : 入力文字列の英小文字を全て英大文字に変換して出力する
!
! date          name            version
! 2017.05.14    mk-mode.com     1.00 新規作成
!
! Copyright(C) 2017 mk-mode.com All Rights Reserved.
!****************************************************
!
program to_uppercase
  implicit none
  integer i
  character(len=100) line
  print *, "英文を入力してください(100文字超は切り捨て):"
  read '(a)', line
  do i = 1, len_trim(line)
    if (line(i:i) >= 'a' .and. line(i:i) <= 'z') then
      line(i:i) = char(ichar(line(i:i)) - 32)
    end if
  end do
  print '(a)', trim(line)
end program to_uppercase

逆に、英大文字を英小文字に変換するなら if 文の部分を以下のようにすればよい。

    if (line(i:i) >= 'A' .and. line(i:i) <= 'Z') then
      line(i:i) = char(ichar(line(i:i)) + 32)
    end if

2. コンパイル

$ gfortran to_uppercase.f95 -o to_uppercase

3. 実行

$ ./to_uppercase
 英文を入力してください(100文字超は切り捨て):
This is a test of Forran95.
THIS IS A TEST OF FORRAN95.

学生時代に使用した Fortran (当時は大文字の FORTRAN77 )を思い出すべく、簡単なコードを書いてみた次第です。(当時覚えたことはほとんど忘れているので、初心者レベル)

少し前に円周率計算を行ったことはありますが、いずれは、他の複雑な計算等も行ってみたいと考えております。

以上。

 

Sponsored Link

 

コメントする