写一个递归reverse,将字符串怎么把视频颠倒过来来

&&国之画&&&&&&
&& &&&&&&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!二次元同好交流新大陆
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(3763)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_087068',
blogTitle:'使用递归方法对字符串进行逆序输出',
blogAbstract:'#include &stdio.h&void reverse(){&&&&&& if((c = getchar()) != \'\\n\')&&&&&&& reverse();&&& if(c != \'\\n\')&&&&&&& putchar(c);}
void main(){&&& reverse();&&& printf(\"\\n\");} 很经典的一个算法啊,前些天someone问我时,怎么当时就没想到呢o(╯□╰)o 这个算法的经典之处就是利用递归是通过堆栈来实现的。程序执行时,函数代码、形参、变量什么的都是存放在堆栈中的。也即,每一层输入的字符都已经存放在了堆栈中。当满足结束条件时,从最后层堆栈开始回归,一层层的返回,即堆栈的先进后出特性。这个算法中,从最后的回车符开始返回,完成了逆序将堆栈中存储的字符输出。',
blogTag:'递归,字符串逆序',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:6,
publishTime:6,
permalink:'blog/static/',
commentCount:4,
mainCommentCount:4,
recommendCount:2,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}编写一个函数reverse_string(char * string)(递归实现)
#include &stdio.h&
#include &assert.h&
#include &stdlib.h&
int my_strlen(const char * str)//计算字符串的长度
assert(str);
int count = 0;
while (*str)
char * reverse_string(char * string)
assert(string);
int len = my_strlen(string);
char temp = 0;
if (len & 0)
temp = string[0];
string[0] = string[len - 1];
string[len - 1] = '\0';
//递归调用,限制条件len&0 ,每次调用的变化str++;
reverse_string(string + 1);
string[len - 1] =
int main()
char str[] = &!emrgirp siht esu ot emoclew&;
printf(&%s\n&, reverse_string(str));
system(&pause&);
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'编程思路(2)
大伙都知道递归就是一个函数自己调用自己,可是对于递归的过程我总是很迷惑。今天正好看到一个程序,就拿来仔细分析分析。
#include&stdio.h&
void reverse(const char *const sptr)//将字符串反着输出
if(sptr[0]=='\0'){
reverse(&sptr[1]);
putchar(sptr[0]);
int main(void)
char s[50];
printf(&输入字符串\n&);
printf(&相反顺序输出:\n&) ;
reverse(s);
}这是一个让我们输入字符串,再对字符串翻转输出的程序。
函数reverse()用递归编写。我们知道字符串的最后一个字符为空字符‘\0’,所以递归的结束条件为==‘\0’。
假设我们输入了字符串abc,这时候'\0'会被加在数组的末尾,即为abc\0。
调用reverse()函数,先进入if判断,a!=’\0‘,故执行reverse(&sptr[1]),这相当于把原来数组abc\0的子数组bc\0赋给reverse函数。接着把a\0赋给reverse,最后\0==\0,就return。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:6971次
排名:千里之外
原创:26篇
(2)(1)(2)(11)(3)(1)(6)编写一个程序,实现把一个字符串颠倒过来。 | Hello world!小组 | 果壳网 科技有意思
126551人加入此小组
char a[100]="Helloworld"; char b[100]; int i,j=0; while(a[j+1])
j++; //得到字符串的长度
for(i=0;i&=j;i++) b=a[j-i];
b[i]='\0'; //设置结束位*/ ? while语句可以这样用么?设置结束位什么意思
+ 加入我的果篮
这里用字符数组表示字符串,那么在最后就需要一个 \0 来标志字符串结束了while语句这样用是没问题的,省略了大括号,当遇到 \0 的位置就跳出循环了
引用 的话:这里用字符数组表示字符串,那么在最后就需要一个 \0 来标志字符串结束了while语句这样用是没问题的,省略了大括号,当遇到 \0 的位置就跳出循环了3Q
引用 的话:这里用字符数组表示字符串,那么在最后就需要一个 \0 来标志字符串结束了while语句这样用是没问题的,省略了大括号,当遇到 \0 的位置就跳出循环了这个。。是什么语言。。。话说一般C,Java,Delphi如果这个通过编译,里面while不是仅仅在循环j++么,for则是在循环b=a[j-1],是不会出问题但是也没意义
引用 的话:这个。。是什么语言。。。话说一般C,Java,Delphi如果这个通过编译,里面while不是仅仅在循环j++么,for则是在循环b=a[j-1],是不会出问题但是也没意义while的意义在于算出 j也就是字符串长度,虽然这种写法很绕弯子
为什么不直接调用strlen()函数求出字符串长度,然后在for()呢???
引用 的话:为什么不直接调用strlen()函数求出字符串长度,然后在for()呢???直接写 for(i=0;a;i++)不是更简洁?
果壳你吞我的字符*修正 a\[i\]
粒子物理博士
a="Helloworld"a[::-1]朋友一起用python吧
char a[]="Hello world!";int i=0;int j=0;for(i=0;a\[i\];i++);for(j=0;j&(i&&1);j++){ a[j]|=a[i-j];a[i-j]|=a[j];a[j]|=a[i-j];}
引用 的话:直接写 for(i=0;a这个方法很多........
while是用来获取字符串长度的。在ANSI编码里面,\0是NUL字符,也就是结束一个字符串的符号。顺带一提这个方法好麻烦。。。#include &string&...string reverse(string source){string temp="";for (int i=0;i&source.length();i++)temp=source[source.length()-i];}
VB更简单~赋值~测长!倒叙输出!
引用 的话:果壳你吞我的字符*修正 a\[i\]直接写 while (a[j++]) 吧,最简短了
直接用别人写好的reverse吧,最简短了..
引用 的话:VB更简单~赋值~测长!倒叙输出!VB.NET吧
引用 的话:VB.NET吧现在不会啦!小学的时候使用的是BASIC!都差不多!
引用 的话:现在不会啦!小学的时候使用的是BASIC!都差不多!不一样的啦, basic的数组是没有自带方法的. 到了.net里面才变得"大而全"并且啰嗦起来的.
引用 的话:不一样的啦, basic的数组是没有自带方法的. 到了.net里面才变得"大而全"并且啰嗦起来的.难道是我记错啦~不会啊~确实有啊~记得当时什么左取右取中间取!还有测长!
引用 的话:难道是我记错啦~不会啊~确实有啊~记得当时什么左取右取中间取!还有测长!你记错了, VB.NET之前的basic版本都是安全数组,即一个记录数组信息的数据结构+一段连续内存. 并非类, 所以不带方法的.取长度用LNE, 取左和右边的子串用left和right函数,取中间用mid函数
引用 的话:你记错了, VB.NET之前的basic版本都是安全数组,即一个记录数组信息的数据结构+一段连续内存. 并非类, 所以不带方法的.取长度用LNE, 取左和右边的子串用left和right函数,取...不对,我小学做过这个题!
引用 的话:不对,我小学做过这个题!不知所云
空间信息与数字技术专业
("hello".split("")).reverse().join("")
引用 的话:a="Helloworld"a[::-1]朋友一起用python吧Python真简洁!话说 [::] 是什么意思?我试了 a[::-2],得到 倒序并间隔一个字符输出,a[::1] 就是原字符串,a[::2] 是正序间隔一个字符。归纳上述结果,两个冒号 :: 后面的数字是步长,负号是倒序的意思。那么两个冒号 :: 是什么意思呢?
(C)2016果壳网&&&&京ICP证100430号&&&&京网文[-239号&&&&新出发京零字东150005号}

我要回帖

更多关于 怎么把视频颠倒过来 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信