判断一个字符串是否为另外一个字符串旋转之后的字符串。 例如:给定s1 =AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0。

判断一个字符串是否为另外一个字符串旋转之后的字符串。
例如:给定s1 =AABCD和s2 = BCDAA,返回1,
           给定s1=abcd和s2=ACBD,返回0。

如果觉得本代码难理解,建议先看这个题实现一个函数,可以左旋字符串中的k个字符。https://blog.csdn.net/weixin_44840572/article/details/102994100

#include<stdio.h>

/*> 2. 判断一个字符串是否为另外一个字符串旋转之后的字符串。 
>    例如:给定s1 =AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0。*/

int left(char str[4],char str1[4],int num)
{
	for (int valus = 1; valus < num; valus++)
	{
		int temp = valus;
		while (valus)
		{
			char tmp = str[0];
			int i = 0;
			for (i = 0; ; i++)
			{
				if (str[i] == '\0')
				{
					break;
				}
				else
				{
					str[i] = str[i + 1];
				}
			}
			str[i - 1] = tmp;
			valus--;			//此处会改变valus的值,后面要换回来
		}
		valus = temp;
		if (strcmp(str, str1) == 0)
		{
			return 1;
			break;
		}
	}
	return 0;
}


int main()
{
	char str[] = "ABCD";
	char str1[] = "DABC";
	int num = sizeof(str) / sizeof(str[0]);
	printf("%d",left(str, str1, num));
	return 0;
}
发布了61 篇原创文章 · 获赞 97 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44840572/article/details/102994107
今日推荐