您的位置:首页 > 其它

两种方法实现右旋字符串中的k个字符

2016-07-31 19:44 302 查看
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void left_spin(char a[], int k)
{
int i = 0;
for (i = 0; i < k; i++)
{
int j = strlen(a) - 1;
char tmp = a[j];
for (j = strlen(a)-1; j > 0; j--)
{
a[j] = a[j - 1];
}
a[j] = tmp;
}
}
int main()
{
char a[] = "AABCD";
int k = 0;
printf("请输入要右旋的字母个数:\n");
scanf("%d", &k);
left_spin(a, k);
printf("%s\n", a);
system("pause");
return 0;
}


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void reverse(char *left, char *right)
{
while (left < right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}

void left_spin(char a[], int n)
{
char *str = a;
int k = strlen(a);
reverse(str, str+k-1-n);//
reverse(str+k-n, str+k-1);
reverse(str, str+k-1);
}

int main()
{
char a[] = "AABCD";
int n = 0;
printf("请输入要右旋的字母个数:\n");
scanf("%d",&n);
left_spin(a,n);
printf("%s\n",a);
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐