首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何逆转一串字符?

如何逆转一串字符?
EN

Stack Overflow用户
提问于 2012-05-15 17:05:45
回答 4查看 3.9K关注 0票数 3

我必须创建一个逆转短语的程序。

例如:当我编写hello guys时,我想要syug olleh

这是我目前所拥有的,但我不知道如何逆转phraseT板中的角色

代码语言:javascript
复制
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
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-15 17:29:59

一种简单的方法..。

代码语言:javascript
复制
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

其他人肯定会想出更聪明的(更短的)。

票数 2
EN

Stack Overflow用户

发布于 2012-05-21 10:42:24

以下是一种较短的方法:

代码语言:javascript
复制
forall (i=1:len(string)) string(i:i) = string(len(string)-i+1:len(string)-i+1)

它甚至可以节省一小部分字节!但我不确定我是否认为这更明智。

票数 3
EN

Stack Overflow用户

发布于 2019-01-26 19:47:06

@Rook的答案也适用于奇怪的字符串长度?无论如何,这是我的尝试,受到他的回答的启发,他的回答也考虑到了后面的空白:

代码语言:javascript
复制
    ! Reverse the string
    function reverse_string(string) result(gnirts)

        character(len=*) :: string
        character(len(string)) :: gnirts
        character(1) :: temp
        integer :: i, length

        length = len(string) 

        do i = 1,length
            gnirts(length-i+1:length-i+1) = string(i:i)
        end do

end function reverse_string
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10605574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档