2012-05-15 69 views
1

我一直在努力做兩個小時的小作業,我想這樣做。 我必須創建一個程序,反轉短語如何扭轉角色鏈? fortran 90

例如:當我寫hello guys,我想syug olleh

這是我的時刻,但我不知道如何扭轉字符板phraseT

program reversing  
implicit none  
character(len=20),dimension(1:20)::phraseT  
character(len=20)::phrase,reverse  
integer::i,x 


write(*,*)"write a phrase :"  
read(*,'(a)')phrase  
x=len(trim(phrase))  
nomT(1:20)=" " 

do i=1,x  
nomT(i:i)=trim(phrase(i:i))  
end do 

write(*,*)nomT  
end program reversing 

回答

1

一個簡單的方法來做到這一點...

character(80) :: string = "Whatttt's up doc?" 
character  :: temp 
integer  :: i, length 

write (*,*) string ! Writes it out proper. 
    length = len_trim(string) ! ignores trailing blanks. 
          ! use len(string) to reverse those as well 
    do i = 1, length/2 
    temp = string(i:i) 
    string(i:i) = string(length+1-i:length+1-i) 
    string(length+1-i:length+1-i) = temp 
    end do 
write(*,*) string  ! Writes it out backwards. 
end 

其他人會想出更聰明的(和更短)肯定。

+0

Thx它的幫助已經很多了。 – Sensolibertaire

1

這裏有一個較短的方式做到這一點:

forall (i=1:len(string)) string(i:i) = string(len(string)-i+1:len(string)-i+1) 

它甚至可以節省字節屈指可數!我不確定我會建議這個更聰明。