程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言:判斷一個字符串是否為另外一個字符串旋轉之後的字符串。

C語言:判斷一個字符串是否為另外一個字符串旋轉之後的字符串。

編輯:關於C語言

C語言:判斷一個字符串是否為另外一個字符串旋轉之後的字符串。


#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <string.h>
void reserve(char *left, char*right)
{
 while (left < right)
 {
  char tmp = *left;
  *left = *right;
  *right = tmp;
  left++;
  right--;
 }
}
void left_reserve(char arr[], int k)
{
 int len = strlen(arr) - 1;
 char *pstart = &arr[0];
 char *pend = arr + len;
 reserve(pstart, pstart + k - 1);
 reserve(pstart + k, pend);
 reserve(pstart, pend);
}
void right_reserve(char arr[], int k)
{
 int len = strlen(arr) - 1;
 char *pstart = &arr[0];
 char *pend = arr + len;
 reserve(pstart, pstart + len - k);
 reserve(pend - k+1, pend);
 reserve(pstart, pend);
}
int main()
{
 char arr[10] = "AABCD";
 char arr2[10] = "ABCDA";
 char *p = arr;
 int k = 5;
 while (k)
 {
  left_reserve(arr, k);
  if (strcmp(arr, arr2) == 0)
  {
   printf("1\n");
   break;
  }
  right_reserve(p, k);
  if (strcmp(p, arr2) == 0)
  {
   printf("1\n");
   break;
  }
  k--;
 }
 if (0 == k)
 {
  printf("0\n");
 }
 system("pause");
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved