字符旋转

1.实现一个函数,可以左旋字符串中的k个字符。 
ABCD左旋一个字符得到BCDA 
ABCD左旋两个字符得到CDAB 


#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<Windows.h>

void left_mov(char s[], int k, int len)
{
    k = k%len;
    char *p = (char *)malloc((2 * len + 1)*sizeof(char));
    strcpy(p, s);
    strcat(p, s);
    strncpy(s,p+k,len);
    free(p);
}


//void Reverse(char*start, char*end)
//{
//  while (start < end)
//  {
//      *start ^= *end;
//      *end ^= *start;
//      *start ^= *end;
//      start++;
//      end--;
//  }
//}
//void left_mov(char str[], int left, int sz)
//{
//  left = left%sz;
//  Reverse(str, str + left - 1);
//  Reverse(str + left, str + sz-1);
//  Reverse(str, str + sz-1);
//}



//void left_mov(char str[], int left, int sz)
//{
//  int i = 0;
//  char tmp = str[0];
//  left = left%sz;
//  for (i = 0; i < left; i++)
//  {
//      int j = 0;
//      for (j = 0; j < sz-1; j++)
//      {
//          str[j] = str[j + 1];
//      }
//      str[j] = tmp;
//  }
//}


int main()
{
    char str[] = { "ABCDEF" };
    int left = 1;
    int sz = sizeof(str) / sizeof(str[0]);
    printf("左旋之前的字符串是:%s\n", str);
    left_mov(str, left, sz);
    printf("左旋之后的字符串是:%s\n", str);
    system("pause");
    return 0;
}
2.判断一个字符串是否为另外一个字符串旋转之后的字符串。 
例如:给定s1 = AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0. 


AABCD左旋一个字符得到ABCDA 
AABCD左旋两个字符得到BCDAA 

AABCD右旋一个字符得到DAABC 
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<Windows.h>
int find_dest(char* src, char* dest)
{
    int len = strlen(src);
    char*tmp = (char*)malloc(2*len+1);
    if (len == strlen(dest))
    {
        strcpy(tmp, src);
        strcat(tmp, src);
        if (strstr(tmp, dest) != NULL)
        {
            return 1;
        }
    }
    free(tmp);
    return 0;
}
int main()
{
    int ret = 0;
    char S1[] = { "ABCD" };
    char S2 []= { "BCDA" };
    ret = find_dest(S1, S2);
    if (ret == 1)
        printf("S2是由S1左旋得到的\n");
    else
        printf("S2不是由S1左旋得到的\n");
    system("pause");
    return 0;
}
3.栈帧的创建和销毁: 
http://blog.csdn.net/Vickers_xiaowei/article/details/79512762

猜你喜欢

转载自blog.csdn.net/vickers_xiaowei/article/details/80300893
今日推荐