char* Lshift(char buf[], int bit){
int len = strlen(buf);
char *buf2 = new char[15];
while(bit--){
for(int i=len;i>0;i--){
buf2[i-1] = buf[i];
}
buf2[len-1] = buf[0];
}
return buf2;
}
char* Rshift(char buf[], int bit){
int len = strlen(buf);
char *buf2 = new char[15];
while(bit--){
for(int i=0;i<len;i++){
buf2[i+1] = buf[i];
}
buf2[0] = buf[len-1];
}
return buf2;
}
int main(){
char buf[15];
cin >> buf;
cout << Lshift(buf,2) << endl << Rshift(buf,2);
}
input:
1011001
output:
0110011
1101100
求助为什么移动的位数错了,现在只移动了一位