سلام .قصد دارم برنامه ای بنویسم که ابتدا طول رمز را از کاربر میگیرد و سپس یک رمز را به صورت دنباله ای از 0 و یک به صورت جداگانه و با یک Spaceکه حکم enter را دارد می گیرد.طول رمز از 16 کاراکتر بیشتر نیست.مثال:
0101
سپس طول سیگنال را ازکاربر می گیرد و سپس سیگنال را از کاربر می گیرد (شبیه همان رمز)مثال:
010100101
سپس با توجه به اینکه پشت سر سیگنال بی نهایت صفر وجود دارد تعداد تکرار رمز را در سیگنال پیدا کرده و چاپ میکند.

الگوریتمی که خود برای آن در نظر گرفته ام به اینگونه است که رمز را از کاربر میگیرد سپس به تعداد کاراکتر های رمز متغیر تعریف میکند که مقدار اولیه آن صفر است.مثلا
0 0 0 0 0 0 0
سپس با وارد کردن اولین عدد سیگنال متغیر سمت راست جای خود را به اولین کاراکتر میدهد .و متغیر های دیگر یکی به یکی به متغیر سمت چپی خود جابجا می شوند.حال رمز را الگوی ایجاد شده مقایسه می کند و اگر برابر بودند یکی به count اضافه می کند.و اگر برابر نبودند متغیر بعدی را می گیرد و جای اولین متغیر سمت راستی را می گیرد و دوباره تا آخر متغیر ها به متغیر سمت چپ خود منتقل می شوند.این متغیر گیری و جابجایی به تعداد کاراکتر های سیگنال انجام می گیرد.

جواب مثال من 2 خواهد بود
و حال سوال من این است این جابجایی و تعیین تعداد متغیر را چگونه می توان به صورت کدهای C نوشت؟؟؟؟.؟؟؟

آیا این الگوریتم مناسبی است!!!!

آیا الگوریتم بهتری سراغ دارید؟؟؟؟؟؟///