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;
}
相关文章
|
26天前
|
NoSQL 程序员 Redis
C语言字符串的设计缺陷
C语言字符串的设计缺陷
23 1
|
20天前
|
C语言
C语言学习笔记之初识字符串
C语言学习笔记之初识字符串
25 5
|
20天前
|
C语言
c语言左旋字符串问题(不同方法超详细解答)
c语言左旋字符串问题(不同方法超详细解答)
10 1
|
2天前
|
安全 C语言
C语言8 数组与字符串
C语言8 数组与字符串
5 0
|
2天前
|
存储 C语言
C语言6 字符串输入和格式输入函数
C语言6 字符串输入和格式输入函数
6 0
|
1月前
|
安全 编译器 C语言
C语言学习记录——字符串相关函数及部分模拟(strcmp、strncmp、strncat、strncpy、strstr、strtok、strerror)
C语言学习记录——字符串相关函数及部分模拟(strcmp、strncmp、strncat、strncpy、strstr、strtok、strerror)
17 1
|
1月前
|
C语言
C语言学习记录——模拟字符串相关函数(strcpy、strlen、strcat)相关知识-const、typedef
C语言学习记录——模拟字符串相关函数(strcpy、strlen、strcat)相关知识-const、typedef
18 1
|
1月前
|
算法 C语言
C语言——oj刷题——字符串左旋和轮转数组
C语言——oj刷题——字符串左旋和轮转数组
17 1
|
18天前
|
安全 C语言 开发者
C语言中的字符串
C语言中的字符串
13 0
|
2月前
|
存储 C语言
字符串的引用方式在C语言中的探讨
字符串的引用方式在C语言中的探讨
26 5