您的位置:首页 > 编程语言 > C语言/C++

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

2016-11-13 00:49 429 查看
判断一个字符串是否为另一个字符串的回旋字符串

总结:

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;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: