使用C语言实现字符串左旋和右旋问题
1.实现一个函数,可以左旋字符串中的k个字符。
ABCD左旋一个字符得到BCDA
ABCD左旋两个字符得到CDAB
1.暴力移位法
#include#include #include voidleft_move(char*str,intk) { intlen=0; inti=0; while(k--) { //1.把第一个保存起来 chartmp=*str; //2.后面的向后移动 len=strlen(str); for(i=0;i 2.三步翻转法
#include#include #include #include voidreverse(char*left,char*right) { assert(left&&right);//断言 while(left 2.实现一个函数,可以右旋字符串中的k个字符。
ABCD右旋一个字符得到DABC
ABCD右旋两个字符得到CDAB
1.暴力移位法
#include#include #include voidright_move(char*p,intk) { intlen=strlen(p); for(inti=0;i 0;--j)//完成一次旋转 { p[j]=p[j-1]; } p[0]=tmp; } } intmain() { chararr[]="ABCD"; intn=0; printf("请输入右旋位数:"); scanf_s("%d",&n); right_move(arr,n); printf("%s",arr); system("pause"); return0; } 2.三步翻转法:先把字符串整体逆序,然后分别是前半部分逆序和后半部分逆序或者
先是后半部分逆序,接下来是前半部分逆序,最后再整体逆序都可以
具体代码如下:
#include#include #include #include voidreverse(char*left,char*right) { assert(left&&right);//断言 while(left 总结
以上所述是小编给大家介绍的使用C语言实现字符串左旋和右旋问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。