Fortran 字符串与数字转换
(2015-01-21 14:08:05)
标签:
股票 |
分类: 编程 |
转自:http://blog.csdn.net/suchaoyong/article/details/5735268
!可以借助fortran的内部文件来实现,核心概念是把字符串看作"文件"
integer::num
character*20::str1,str2,str3
num=11
str1='11'
str2='22'
str3='33'
!1,数字转字符
write(str1,"(i4.4)")num ! 如有需要,不足四位前面补零
print*,str1
!2,字符转数字
read(str1,"(i2)")num
print*,str1
!3,字符转字符(字符串连接...)
write(str1,"(a8)")trim(str1)//trim(str2)//trim(str3)//'eg'
!两个斜杆//连接不同的字符串
!还有一种办法可以实现字符串连接
str1(3:4)=str2
str1(5:6)=str3
str1(7:8)='eg'
print*,str1
end
注意:
Fortran 无格式文件的读写,是按数据块操作的,默认文件头文件尾和中间字节,编译器不同文件插入字节也可能不同;
与C语言通过文件交互时,最好选用二进制或文本格式,慎用无格式。
============================================================
转换成浮点数
character( 3 ) :: cStr = '123'
Real :: rReal = 0.0
Read( cStr , * ) rReal
此时 rReal = 123.0
从数字转换成字符串,用 Write 既可
character( 3 ) :: cStr
Integer :: iInt = 123
Write( cStr , * ) iInt
此时 cStr = '123'
转自:http://zhidao.baidu.com/link?url=RTODmKdugFVNA7AeKL6fIiFBnPH-BHwIlr6g9qZy0RXXPyagk_GQHyneAVPLCBqBgzsyRRA5ln tBkNWBMgqz7_
=======================================================================================
FORTRAN语言中整数转换为字符串,如整数123变为字符串
: name you want to this string (like sprintf in C), and use the string.
: character(len=12)::fname
: integer::i
: do i=0,9999,1
: write(unit=fname,fmt="('file',i4.4,'.dat')")i ! like sprintf() in C
: open(unit=10,file=fname)
: ...
: close(unit=10)
: end do
file001.txt,
贴出源程序,供各位参考:
文件名:
****************************************************************************
MODULE
CONTAINS
! *****************************************************************
FUNCTION
! *****************************************************************
!
! 程序说明:
! Generate
! The
!
! INPUT:
! NAME filename;
! NUM indicate
!
! "0000","00000";
! INDEX the
! EXT extension
! EXAMPLE:
! NAME='FILE'
! NUM='0000'
! INDEX=18
! EXT='TXT'
! Returned
!
! Xin
! *****************************************************************
CHARACTER*108
CHARACTER*(*)
INTEGER*4
WRITE(NA,'(I4)')
NA=ADJUSTL
LENGTH1=LEN_TRIM(NA)
LENGTH2=LEN_TRIM(NUM)
NUM1=NUM(1:(LENGTH2-LENGTH1))//NA
NAMEGEN=TRIM(NAME)//TRIM(NUM1)//'.'//TRIM(EXT)
END
END
Fortran字符串操作备忘录——产生序列文件名
2008-2-18 幻影整理
主程序: 根据一个前缀字符串、一个序列号,生成一个文件名。
函数1:根据一个字符串、串定义长度,计算该串非空字符的首个位置。
函数2:根据一个字符串、串定义长度、非空字符的首个位置,计算该串非空字符的未尾位置。
cccccccccccccccccccccccc
cccc
cccc
cccccccccccccccccccccccc
cccc
cccc
cccc
cccccccccccccccccccccccc
cccc
222
cccccccccccccccccccccccc
cccc
223
cccccccccccccccccccccccc