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

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

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<string.h>

char *my_strncat(char *dest, const char *src, size_t count)
{
    assert(dest);
    assert(src);
    char *ret = dest;
     
    while (*dest)
    {
        dest++;
    }
    while (count--)
    {
        *dest++ = *src++;
    }
    *dest = ‘\0‘;
    return ret;
}

char *my_strstr(char *str1, const char *str2)//
{
    char*ptr = str1;
    char*p1 = NULL;
    char*p2 = NULL;
     
    while (*ptr)
    {
        p1 = ptr;
        p2 = str2;
        while (*p1 == *p2)
        {
            p1++;
            p2++;
            if (*p2 == ‘\0‘)
            {
                return ptr;
            }
        }
        ptr++;
    }
    return NULL;

}

int main()
{
    char arr[20] = "abcdef";//预留空间
    char *p = "cdefab";
    int len = strlen(arr);
     
    my_strncat(arr, arr, len);
    char*ch=my_strstr(arr, p);
     
    if (ch != NULL)
    {
        printf("%p\n", ch);
        printf("%s", ch);
    }
    else
    {
        printf("not  exit");
    }
     
    system("pause");
    return 0;
}
时间: 2024-10-12 12:43:59

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

php如何判断一个字符串是否包含另一个字符串

来自1:http://blog.sina.com.cn/s/blog_8edc37a801016yha.html -------------------------------------------------------------------- 我觉得最简单的就是:(用这种最好,StrPos效率最高) strpos($a, $b) !== false 如果$a 中存在 $b,则为 true ,否则为 false. 用 !== false (或者 === false) 的原因是如果 $b 正

【c语言】判断一个字符串是否为另外一个字符串旋转之后的字符串

// .判断一个字符串是否为另外一个字符串旋转之后的字符串. // 例如:给定s1 = AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0 #include <stdio.h> #include <string.h> #include <assert.h> int rotate(char *p, char *q) { assert(p != NULL && q != NULL); strncat(p,p,strlen(p

判断一个字符串是否为另外一个字符串左旋或右旋之后的字符串

题目: 判断一个字符串是否为另外一个字符串旋转之后的字符串.例如:给定s1 = abcdef和s2 = cdefab,返回1,给定s1=abcd和s2=ACBD,返回0. abcdef左旋一个字符得到bcdefa abcdef左旋两个字符得到cdefab abcdef右旋一个字符得到fabcde abcdef右旋两个字符得到efabcd 题目分析: 根据这个题目,我们能够和字符串的左旋和右旋联系起来,如果把给定的字符串拷贝一份放在给定字符串之后,例如:给定字符串abcdef,经过拷贝后得到字符串

ES6--javascript判断一个字符串是否存在另一个字符串中

es5中我们经常使用indexof()方法来判断一个字符串是否包含另外一个字符串中. 如果存在则返回匹配到的第一个索引值.如果没有则返回 -1.所以,判断一个字符串是否包含另外一个字符串中只需要判断是否为-1就行.-1代表不存在. 例如: let str = 'Hello World!'; console.log(str.indexOf('H'));//0 str中"H"的出现的第一个索引为0 console.log(str.indexOf('o'));//4 str中"o&

两种方法判断一个字符串是否为另外一个字符串旋转之后的字符串。(C语言)

例如:给定s1 = AABCD和s2 = BCDAA,返回1给定s1 = abcd和s2 = ACBD,返回0. AABCD左旋一个字符得到ABCDAAABCD左旋两个字符得到BCDAA 第一种:通过其中一个字符串向左移动确定第二个字符串 #include<stdio.h> #include<string.h> void left_move(char *str, int k) { while (k != 0) { char *cur = str;//必须需要另一个指针存储首地址 c

给定一个只包含字符’(’,’)’,’{’,’}’,’[‘和’]&#39;的字符串,判断输入字符串是否有效

public class Bracket { public static void main(String[] args) { String str = "[()]"; System.out.println(isValid(str)); } // [()] public static boolean isValid(String str) { Stack<Character> stack = new Stack<>(); Map<Character, Ch

输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串&quot;345&quot;,则输出整数345。

方法一:使用C函数库中的函数atoi(const char *nptr),一行代码就可以解决问题,但这并不是题目所需要的解题思路: 方法二:假如我们输入的是“345”,从左到右依次遍历,第一次所要的结果是“3”,第二次所要的结果是“34”,34=3*10+4,第三次所要的结果是“345”,345=34*10+5.由此,我们可以从左到右依次遍历每一个字符,将前一次得到的结果*10+本次遍历的字符,使用一个循环就可以将一个字符串转化成一个整数. 如果字符串中的第一个字符是“-”,那么得到的是负整数.

给定两个字符串,确定其中一个字符串的字符重新排列后,能否变成另一个字符串

1 /* 2 * 给定两个字符串,确定其中一个字符串的字符重新排列后,能否变成另一个字符串,其实也就是变位词问题 3 * 比如说 a='abc' b='acb'是可以通过a变成b的 4 * 思路; 5 * 1.应进行分析,变位词区分大小写吗?比如God和dog是变位词?还需要考虑空格问题? 6 * 在这里我们假定是区分大小写的. 7 * 2.比较两个字符串时,如果它们的长度都不相等了,那肯定不是变位词 8 * 9 * 10 * */ 11 12 public class IsSameString

输入5个学生的名字(英文),使用冒泡排序按从大到小排序。 提示:涉及到字符串数组,一个字符串是一个一维字符数组;一个 字符串数组就是一个二维字符数组。

#include <stdio.h>#include <string.h> /*输入5个学生的名字(英文),使用冒泡排序按从大到小排序.提示:涉及到字符串数组,一个字符串是一个一维字符数组:一个字符串数组就是一个二维字符数组.*/ void main(){ char stuNames[5][100]; char tmp[100]; int i = 0,j = 0; for(i = 0; i < 5; i++) { printf("请输入第%d个学生的名字:"

输入任意一个字符串,如:“abDEe23dJfd343dPOddfe4CdD5ccv!23rr”。 取出该字符串中所有的字母组成一个新的字符串。

#include <stdio.h>#include <string.h> /*输入任意一个字符串,如:“abDEe23dJfd343dPOddfe4CdD5ccv!23rr”. 取出该字符串中所有的字母组成一个新的字符串.*/ void main(){ char oldStr[100] = "abDEe23dJfd343dPOddfe4CdD5ccv!23rr"; char newStr[100]; int i = 0,j = 0; for(i = 0; i