博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于字符串逆序的问题
阅读量:4071 次
发布时间:2019-05-25

本文共 884 字,大约阅读时间需要 2 分钟。

有人考我字符串逆序的算法,我居然写不上来,懊恼死了。 

当时脑海里想的是用堆栈的算法,可是又不会写,至于递归,硬是没想到。

题目:实现字符串逆序函数 reverse(char   *str)

答案:

1。最简单的,不一定规范但能实现。

 

  
void
   reverse(
char
   
*
str)  
 
{   
          
if   (!*str)   return;   
          fun(str
+1);   
          printf(
"%c",*str);   
  }
  

 

2。比较规范的C

 

  
char
*
   reverse(
char
   
*
cpSource)   
  
{   
                
static   char   *cpTemp   =   NULL;   
                
if(cpTemp   ==   NULL)   cpTemp   =   cpSource;   
                
if(*(cpSource+1))   reverse(cpSource+1);   
                
if(cpSource-cpTemp   >   0)   
                
{   
                            
char   cTemp   =   *cpTemp;   
                           
*cpTemp++   =   *cpSource;   
                           
*cpSource   =   cTemp;   
                }
   
                
return   cpSource;     
  }
 

 

3。另外找了个ARM汇编的版本

 

data segment
string1 db 
'
 abcdefg
'
count  equ $
-
string1
string2 db count dup(
?
),
'
$
'
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
      mov ds,ax
      mov cx,count
      mov si,offset string1
      add si,cx
      dec si
      mov di,offset string2
lop1: mov al,[si]
      mov [di],al
      dec si
      inc di
loop  lop1
mov dx,offset string2
mov ah,
9
int
 21h
mov ah,4ch
int
 21h
code ends
end start

 

 

附:参考地址

这里就给汇编的,C的太多了,随便搜搜就能找到。

转载地址:http://yogji.baihongyu.com/

你可能感兴趣的文章
企业如何运用企业云盘进行数字化转型-实现新发展
查看>>
司法如何运用电子智能化加快现代化建设
查看>>
iSecret 1.1 正在审核中
查看>>
IOS开发的开源库
查看>>
IOS开发的开源库
查看>>
Jenkins - sonarqube 代码审查
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成(一)
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成 - 单机部署(二)
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成 - 高可用集群部署(三)
查看>>
Golang struct 指针引用用法(声明入门篇)
查看>>
Linux 粘滞位 suid sgid
查看>>
C#控件集DotNetBar安装及破解
查看>>
Winform皮肤控件IrisSkin4.dll使用
查看>>
Winform多线程
查看>>
C# 托管与非托管
查看>>
Node.js中的事件驱动编程详解
查看>>
mongodb 命令
查看>>
MongoDB基本使用
查看>>
mongodb管理与安全认证
查看>>
nodejs内存控制
查看>>