问题描述:
假设有字符串: ABCDE
左旋一个字符得到新字符串 BCDEA
左旋两个字符得到新字符串 CDEAB
代码实现:
#include <stdio.h> #include <string.h> void reverse(char *left,char *right) { while(left<right) { char tmp=*left; *left=*right; *right=tmp; left++; right--; } } void left_move(char *str,int k,int len) { reverse(str,str+k-1); reverse(str+k,str+len-1); reverse(str,str+len-1); } int main() { char str[]="ABCDE";/*原字符串:ABCDE*/ int k=0; int len=strlen(str); printf("请输入旋转几个字符:"); scanf("%d",&k); while (k>len) { printf("数字太大,请重新输入:"); scanf("%d",&k); } left_move(str,k,len); printf("%s\n",str); return 0; }
结果:
时间: 2024-10-14 22:53:09