码迷,mamicode.com
首页 > 其他好文 > 详细

判断一个字符串是否为另外一个字符串旋转之后的字符串。

时间:2015-11-03 18:01:23      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:判断一个字符串是否为另外一个字符串旋转之后的字符串。

★判断一个字符串是否为另外一个字符串旋转之后的字符串。

例如:给定s1 = AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0.

AABCD左旋一个字符得到ABCDA     AABCD右旋一个字符得到DAABC                  

AABCD左旋两个字符得到BCDAA     AABCD右旋两个字符得到CDAAB                 

#include <stdio.h>
#include <string.h>
#include <assert.h>
#include<stdlib.h>
int spin(char *p, char *q)
{
assert(p != NULL && q != NULL);   //断言传入的指针为不为空,用以抛出异常
strncat(p, p, strlen(p));     //strncat函数用以连接两个字符串,若用strcat则可能会发生越界,数组长度不够容纳越界处后续的字符,strlen用以求出字符串的长度
if (strstr(p, q) == NULL)      //strstr用以在原字符串中查找目标字符串,注意参数的位置顺序
{
return 0;
}
else
{
return 1;
}
}
int main()
{
char p[20] = "AABCD";          //原字符串
char *q = "BCDAA";             //目标字符串
    char r[20] = "abcd";          //原字符串
    char *s = "ACBD";            //目标字符串
    printf("字符串:%s\t%s\n",p,q);
int ret = spin(p, q);
printf("BACK_VALUE=%d\n",ret);    //输出返回值
printf("字符串:%s\t%s\n",r,s);
int rew = spin(r, s);
printf("BACK_VALUE=%d\n",rew);    //输出返回值
system("pause");
return 0;
}

技术分享

本文出自 “温暖的微笑” 博客,请务必保留此出处http://10738469.blog.51cto.com/10728469/1709162

判断一个字符串是否为另外一个字符串旋转之后的字符串。

标签:判断一个字符串是否为另外一个字符串旋转之后的字符串。

原文地址:http://10738469.blog.51cto.com/10728469/1709162

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!