描述:
有一字符串asdfghjh,将3位翻转得fghihasd,编写程序实现。
基本思路:
编写reverse函数,实现k到m位的翻转。
reverse(0,n-1,a); //第一个位置到第n位置翻转;
reverse(n,len-1,a); //第n+1个位置到最后位置翻转;
reverse(0,len-1,a); //第一个位置到最后位置翻转;
源代码:
#include <stdio.h>
#include <string.h>
void reverse(int k,int m,char a[])
{
int i,j;
char t;
for(i=k,j=m;j>i;i++,j--)
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
int main()
{
char a[100];
int n,len;
printf("input string:");
gets(a);
len=strlen(a);
printf("input the reverse of bits:");
scanf("%d",&n);
reverse(0,n-1,a);
reverse(n,len-1,a);
reverse(0,len-1,a);
puts(a);
printf("\n");
return 0;
}