Сдвиг символов строки влево на x бит, указанный пользователем
Я пытаюсь сдвинуть символы строки влево на x битов, указанных пользователем. Операция переключения работает не так, как хотелось бы.
Что я уже пробовал:
#include <iostream> #include <stdio.h> using namespace std; void display(char *name, int l) { int i; for(i=0;i<=l;i++) cout<<name[i]; } void shiftop(char *name, int shiftbit, int l) //l=stringlength { int sb,i=1; char temp; for(sb=shiftbit+1;sb<=l;sb++) { temp=name[i]; name[i]=name[sb]; name[sb]=temp; i++; } display(name,l); } int main(){ int l,s; char name[30]; cout<<"Enter the string"; gets(name); cout<<"shift bit "; cin>>s; l=sizeof(name); shiftop(name,s,l); }
CPallini
Каково именно ваше требование? Пожалуйста, приведите пример входных данных и ожидаемых результатов.
Dave Kreskowiak
"Не работает так, как хотелось бы" - это не правильное описание проблемы. Каков вход, каков ожидаемый выход и что вы получили?