- 积分
- 7459
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-9-20
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
将某个字符串(InStr)中的某个字符串(OldChar),不知道出现几次,全部替换为另一个字符串(NewChar),输出另一个字符串(OutStr)。看程序的变量定义,就可以知道没有对任何字符串的长度予以规定。
已经做出初步测试,测试通过,但是没有进行极端情况的测试。
测试包括:
1、将其中一个字符全部替换为空格。
2、将其中一个字符串全部替换为*和空格。
subroutine sub_replace_character(InStr,OutStr,OldChar,NewChar)
!!!--- InStr是从非‘空格’字符开始的,对于其余三个变量没有要求
implicit none
character(len=*) :: InStr,OutStr
character(len=*) :: OldChar,NewChar
integer*4 :: AllCount,SubCountOld,SubCountNew,Count
integer*4 :: i
AllCount = len(InStr)
SubCountOld = len(OldChar)
SubCountNew = len(NewChar)
if(InStr(1:SubCountOld).eq.OldChar) then
OutStr(1:SubCountNew) = NewChar
Count = SubCountNew
i = 1+SubCountOld
else
OutStr(1:1) = InStr(1:1)
Count = 1
i = 2
endif
do while(i.le.AllCount-SubCountOld+1)
if(InStr(i:i+SubCountOld-1).eq.OldChar) then
OutStr = OutStr(1:count)//NewChar
Count = Count + SubCountNew
i = i+SubCountOld
else
OutStr = OutStr(1:Count)//InStr(i:i)
Count = Count + 1
i = i+1
endif
enddo
if(i.le.AllCount) OutStr = OutStr(1:Count)//InStr(i:AllCount)
end
|
评分
-
查看全部评分
|