「王様ゲーム The Animation」ティザーPV
アニメ『王様ゲーム The Animation』(2017)
ハッピーエンドなら最後まで見ようと思うんですが、怖くて視聴が進みません。面白いんですけど。
さてFORTRANです。なんとFORTRAN77にも、文字列スライスがありました。
こんな風に使います。
文字列変数(最初:最後)
takk@deb9:~$ cat slice1.f PROGRAM MAIN CHARACTER*11 S S='ABCDE FGHIJ' WRITE(*,11111) S(1:5) 11111 FORMAT(A10) STOP END takk@deb9:~$ gfortran slice1.f takk@deb9:~$ ./a.out ABCDE takk@deb9:~$
感動です。Pythonのスライスで感動を覚えたときもありましたが、FORTRAN77の時代からあったとは。やはり考古学は大事です。
:(コロン)から右を省略すると最大値が指定されます。
takk@deb9:~$ cat slice2.f PROGRAM MAIN CHARACTER*11 S S='ABCDE FGHIJ' WRITE(*,11111) S(7:) 11111 FORMAT(A10) STOP END takk@deb9:~$ gfortran slice2.f takk@deb9:~$ ./a.out FGHIJ takk@deb9:~$
:(コロン)から左を省略すると最小値の指定となります。
takk@deb9:~$ cat slice3.f PROGRAM MAIN CHARACTER*11 S S='ABCDE FGHIJ' WRITE(*,11111) S(:5) 11111 FORMAT(A10) STOP END takk@deb9:~$ gfortran slice3.f takk@deb9:~$ ./a.out ABCDE takk@deb9:~$
置換もできます。こんなことまでできるんですね。
takk@deb9:~$ cat slice4.f PROGRAM MAIN CHARACTER*11 S S='ABCDE FGHIJ' S(4:7)='4567' WRITE(*,11111) S 11111 FORMAT(A10) STOP END takk@deb9:~$ gfortran slice4.f takk@deb9:~$ ./a.out ABC4567GHI takk@deb9:~$
しかし置換する文字列の個数が合わないと、このように結果がおかしくなります。
takk@deb9:~$ cat slice5.f PROGRAM MAIN CHARACTER*11 S S='ABCDE FGHIJ' S(4:7)='12' WRITE(*,11111) S 11111 FORMAT(A10) STOP END takk@deb9:~$ gfortran slice5.f takk@deb9:~$ ./a.out ABC12 GHI takk@deb9:~$
コメント