主题:怎样提取不定长字符串中的数字?
			 大智若愚
				 [专家分:90]  发布于 2010-09-26 15:06:00
 大智若愚
				 [专家分:90]  发布于 2010-09-26 15:06:00							
			大家好!
比如有下列的字符串:
1200-T.dat
180-T.dat
90-T.dat
3-T.dat
这系列字符串中,每行的字符数都不同,有10个字符,9个字符、8个字符、7个字符。我想把这里面的数字提取出来,请问应该怎么办?
请指点一下,谢谢!
						
					 
		
			
回复列表 (共4个回复)
		
								
				沙发
				
					 jstzhurj [专家分:4680]  发布于 2010-09-26 15:23:00
jstzhurj [专家分:4680]  发布于 2010-09-26 15:23:00				
				
抛砖引玉:
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
程序里面提供了两种方法,有其他方法的不妨拿出来大家交流交流。
							 
						
				板凳
				
					 299792458 [专家分:60]  发布于 2010-09-26 16:06:00
299792458 [专家分:60]  发布于 2010-09-26 16:06:00				
				lz,这些字符串有确定的规律吗?比如后缀都是'-T.dat',或者要提取的是前N个连续数字之类的
							 
						
				3 楼
				
					 大智若愚 [专家分:90]  发布于 2010-09-26 16:32:00
大智若愚 [专家分:90]  发布于 2010-09-26 16:32:00				
				谢谢jstzhurj老师!谢谢你抛的金砖!o(∩_∩)o...
我采用了第一种方法。
							 
						
				4 楼
				
					 大智若愚 [专家分:90]  发布于 2010-09-26 16:34:00
大智若愚 [专家分:90]  发布于 2010-09-26 16:34:00				
				嗯,后缀都是'-T.dat'
要忙工作了,后天要交报告,我现在还在处理数据,呜呜……
							 
									
			
我来回复