結果

問題 No.9006 マルチバイト文字テスト(テスト用)
ユーザー jjjj
提出日時 2017-01-31 23:59:41
言語 Fortran
(gFortran 13.2.0)
結果
AC  
実行時間 1 ms / 5,000 ms
コード長 725 bytes
コンパイル時間 1,861 ms
コンパイル使用メモリ 27,272 KB
実行使用メモリ 4,380 KB
最終ジャッジ日時 2023-08-25 16:44:04
合計ジャッジ時間 594 ms
ジャッジサーバーID
(参考情報)
judge13 / judge12
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
4,380 KB
testcase_01 AC 1 ms
4,376 KB
testcase_02 AC 1 ms
4,376 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

program main
  implicit none
  character*300::S
  character*300::SR
  integer::i,len,utf8len
  integer*1::code
  character::c
  S=""
  SR=""
  read *, S
  len = LEN_TRIM(S)
  i = 1
  do
     if(i.gt.len) exit
     utf8len = get_utf8_len(S(i:i))
     SR(len-i-utf8len+2:len-i+1) = S(i:i+utf8len-1)
     i = i + utf8len
  end do
  print '(a)', TRIM(SR)

  return
contains
  logical function is_ascii(c) result(l)
    character::c
    l = .not.BTEST(ICHAR(c,1),7)
  end function is_ascii
  integer function get_utf8_len(c) result(len)
    character::c
    integer*1::ic
    ic = ICHAR(c,1)
    if(.not.BTEST(ic,7)) then
       len = 1
    else
       len = LEADZ(NOT(ic))
    end if
  end function get_utf8_len
end program main
0