C语言第四十五弹---判断字符串旋转结果

简介: C语言第四十五弹---判断字符串旋转结果

C语言实现判断字符串旋转结果

思路:使用循环,让原字符串每次旋转一个字符,并和旋转字符串进行比较,相等则停止循环并返回判断,外层循环截止没有截止,则证明不相同,则返回不同的判断。

代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int Same_Char(char * s1,char * s2,int len)
{
    if (strcmp(s1, s2) == 0)//没有发生旋转,直接返回1
    {
      return 1;
    }
    if (strlen(s1) != (strlen(s2)))//长度不同,直接返回-1
    {
      return -1;
    }
    for (int i = 0; i < len-1; i++)//
    {
      char tmp = *s1;//保存*s1首元素地址位置
      for (int j = 0; j < len - 1; j++)//外层循环一次内部for循环一次,完成一次头放到尾
      {
        *(s1 + j) = *(s1 + j + 1);
      }
      *(s1 + len - 1) = tmp;//把s1首字符放到最后
      if ((strcmp(s1, s2) == 0))//旋转后的s1与s2比较
      {
        return 1;
      }
    }
    return -1;
}
int main()
{
  char s1[1000] = { 0 };
  char s2[1000] = { 0 };
  printf("请输入原字符串:");
  gets(s1);
  printf("\n");
  printf("请输入旋转后字符串:");
  gets(s2);
  int len = strlen(s1);
  int ret=Same_Char(s1, s2, len);
  if (ret == 1)
  {
    printf("Same");
  }
  else
  {
    printf("NO Same");
  }
  return 0;
}
相关文章
|
18天前
|
存储 C语言
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现2
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现
|
2天前
|
存储 C语言
字符串的引用方式在C语言中的探讨
字符串的引用方式在C语言中的探讨
16 5
|
4天前
|
存储 C语言
向函数传递字符串: C语言中的技术与实践
向函数传递字符串: C语言中的技术与实践
14 0
|
4天前
|
C语言
C语言指针与字符串
C语言指针与字符串
|
4天前
|
存储 C语言
C语言中的字符串访问与输入输出技术详解
C语言中的字符串访问与输入输出技术详解
13 0
|
4天前
|
存储 Serverless C语言
C语言中的字符串储存技术
C语言中的字符串储存技术
15 0
|
4天前
|
存储 安全 C语言
C语言中的字符串常量及其处理技术
C语言中的字符串常量及其处理技术
14 0
|
5天前
|
C语言
C语言常量与变量、字符串与转义字符
C语言常量与变量、字符串与转义字符
|
9天前
|
C语言
C语言基础 - 字符串/字符数组最易错考点
该文探讨了C语言中&#39;\0&#39;字符对字符串和字符数组的重要性,以及`strlen`和`sizeof`的区别。&#39;\0&#39;作为字符串的结束标志,确保了正确打印和计算字符串长度。示例代码显示,未包含&#39;\0&#39;的字符数组打印时可能出现随机值。`strlen`计算字符串长度,不包含&#39;\0&#39;,而`sizeof`返回变量或数组的总字节数,包括&#39;\0&#39;。文章还提醒注意转义字符在字符串中的影响,例如`\t`和`\62`。最后总结了字符串和字符数组处理时应注意的要点。
22 0
C语言基础 - 字符串/字符数组最易错考点
|
11天前
|
C语言
c语言:字符串和内存函数介绍-2
c语言:字符串和内存函数介绍
14 0