字符串旋转(2)

题目要求:

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

例如:

  • 给定s1 AABCD和s2 =BCDAA,返回1。
  • 给定s1=abcd和s2=ACBD,返回0。
  • AABCD左旋一个字符得到ABCDA
  • AABCD左旋两个字符得到BCDAA
  • AABCD右旋一个字符得到DAABC

思路展开:

例如:我们要判断BCDAA是否是AABCD旋转得到的。

方法一:可以将AABCD进行拷贝和拼接,变为AABCDAABCD,以此在使用库函数strstr进行判定,得到结果。

方法二:我们使用以《字符串旋转(1)》的第一种方法进行挪动,挪动一个字符进行一次判断,最后在判断成功返回1,当字符串中所有的字符都挪动了一次后,任然没有结果,则返回0表示失败。http://t.csdn.cn/QrxTihttp://t.csdn.cn/QrxTi

字符串旋转(2)_第1张图片

 方法一:

需要采用strstr、strcat、strcpy 三个库函数进行使用。

strstr进判断,strcat进行拼接、strcpy进行拷贝。

字符串旋转(2)_第2张图片

 字符串旋转(2)_第3张图片

简略介绍:

strcpy(x,y)

y是指拷贝的内容,x是指将拷贝的内容y放置的空间!

strnact(x,y)

这是将y的内容拼接到x内容的末端。

 strstr(x,y)

表示的是进行判断,判断y是否是x的一部分,通常用于字符串,如果不是一部分则返回NULL

方法二:

 采用两个for循环进行遍历,第一个for是挪动(旋转)字符的,第二个for是把其他字符往前方挪动,且在第一个for中要包含判断语句,判断每一次挪动(旋转)的结果是否和另一个字符串相同,如果是返回1。


挪动(旋转)的字符和其他字符往前挪动的思路参考http://t.csdn.cn/QrxTi

 字符串旋转(2)_第4张图片

字符串旋转(2)_第5张图片

你可能感兴趣的:(C语言,c语言,指针,函数)