【C语言】判断一个字符串是否为另一个字符串的回旋字符串

来源:互联网 发布:suse12网络配置端口 编辑:程序博客网 时间:2024/06/05 05:51

判断一个字符串是否为另一个字符串的回旋字符串

总结:
1.用动态分配内存包含了每一种情况
2.用strstr()函数进行判断是否为回旋

警告总结:
1.一旦动态分配内存,为防止野指针,一定要考虑到每一种情况,进行释放。

#include<stdio.h>#include<string.h>#include<assert.h>#include<windows.h>#pragma warning(disable:4996)int isShiftStr(char*src, char*dst);int main(){    char str[] = "hello";    char dst[] = "ohell";    if (isShiftStr(str,dst))    {        printf("满足回旋\n");    }    else    {        printf("不满足回旋\n");    }    system("pause");    return 0;}//判断是否为回旋字符串函数int isShiftStr(char *src, char *dst){    assert(src);    assert(dst);    if (strlen(src) == strlen(dst)){        int len = strlen(src);        char* buf = (char*)malloc(sizeof(char)*len * 2 + 1);        strcpy(buf, src);        strcat(buf, src);        if (strstr(buf, dst) == NULL){            free(buf);            buf = NULL;            return 0;        }        free(buf);        buf = NULL;        return 1;    }    return 0;}

这里写图片描述

0 0