回 帖 发 新 帖 刷新版面

主题:怎样提取不定长字符串中的数字?

大家好!
比如有下列的字符串:
1200-T.dat
180-T.dat
90-T.dat
3-T.dat

这系列字符串中,每行的字符数都不同,有10个字符,9个字符、8个字符、7个字符。我想把这里面的数字提取出来,请问应该怎么办?
请指点一下,谢谢!

回复列表 (共4个回复)

沙发


抛砖引玉:
program main

implicit none
character(len=30),dimension(4)::a
integer i,j,length,pos
data a /'1200-T.dat','180-T.dat','90-T.dat','3-T.dat'/

do i =1,4
 length=len(trim(a(i)))
 read(a(i)(1:length-6),*) j
 write(*,*) j
enddo

do i =1,4
 pos=index(a(i),'-')
 read(a(i)(1:pos-1),*) j
 write(*,*) j
enddo

end program

程序里面提供了两种方法,有其他方法的不妨拿出来大家交流交流。

板凳

lz,这些字符串有确定的规律吗?比如后缀都是'-T.dat',或者要提取的是前N个连续数字之类的

3 楼

谢谢jstzhurj老师!谢谢你抛的金砖!o(∩_∩)o...
我采用了第一种方法。

4 楼

嗯,后缀都是'-T.dat'
要忙工作了,后天要交报告,我现在还在处理数据,呜呜……

我来回复

您尚未登录,请登录后再回复。点此登录或注册