/*
* shift.cpp
*
* Created on: 2013-1-1
* Author: Administrator
*/
#include<stdio.h>
#include<string.h>
void reverse(char *p,int begin,int end) {
char tmp ;
while(begin<end) {
tmp = p[begin];
p[begin] = p[end];
p[end] = tmp;
begin++;
end--;
}
}
void shift(char *p,int k,int n) {
k= k %n;
reverse(p,0,n-k-1);
reverse(p,n-k,n-1);
reverse(p,0, n-1);
}
int main() {
char str[] = "abcdefg234";
shift(str,3,strlen(str));
puts(str);
return 0;
* shift.cpp
*
* Created on: 2013-1-1
* Author: Administrator
*/
#include<stdio.h>
#include<string.h>
void reverse(char *p,int begin,int end) {
char tmp ;
while(begin<end) {
tmp = p[begin];
p[begin] = p[end];
p[end] = tmp;
begin++;
end--;
}
}
void shift(char *p,int k,int n) {
k= k %n;
reverse(p,0,n-k-1);
reverse(p,n-k,n-1);
reverse(p,0, n-1);
}
int main() {
char str[] = "abcdefg234";
shift(str,3,strlen(str));
puts(str);
return 0;
}
output:
234abcdefg