LINUX.ORG.RU

Fortran String to Array of Int

 ,


0

1

Есть строка с=«[23,87,43,987,1,543]»

надо ее преобразовать в массив целых чисел.

Как это можно сделать в фортране?

И еще вопрос:

Какова максимальная длинна аргументов (длина строки аргументов) при вызове прогаммы из командной строки виндовз?

Вот так норм?

PROGRAM Example
 
  CHARACTER(23) :: str = "Hello,How,Are,You,Today"
  CHARACTER(5) :: word(5)
  INTEGER :: pos1 = 1, pos2, n = 0, i
 
  DO
    pos2 = INDEX(str(pos1:), ",")
    IF (pos2 == 0) THEN
       n = n + 1
       word(n) = str(pos1:)
       EXIT
    END IF
    n = n + 1
    word(n) = str(pos1:pos1+pos2-2)
    pos1 = pos2+pos1
 END DO
 
 DO i = 1, n
   WRITE(*,"(2A)", ADVANCE="NO") TRIM(word(i)), "."
 END DO
 
END PROGRAM Example
Closius
() автор топика

перепиши на rust и закопай в битон

anonymous
()
implicit none
character(1024) :: c = "23,87,43,987,1,543"
integer :: a(6)
read(c,*) a
print *, a
end program

Уж скобочки-то в строке обрежешь сам?

anonymous
()
Ответ на: комментарий от anonymous

или так

program main
  implicit none
  character(:), allocatable :: c
  integer :: a(6)
  c ="[23,87,43,987,1,543]"
  c = c(2:len(c)-1)
  read(c,*) a
  print *, a
end

для fortran95 должно работать.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.