输入两个字符串,结合后判断是否是回文

输入两个字符串,结合后判断是否是回文(从前面开始读是那个单词,从后往前读还是那个单词)

输入
str1 str2
输出
是回文的话 ok:str3
不是回文的话 not_ok:str3


输入
carrot torrac
输出
ok:carrottorrac

输入
camera arema
输出
not_ok:cameraarema


#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main()
{
    char str1[100], str2[100];
    scanf("%s%s", str1, str2);
    strcat(str1, str2);
    int i, len = strlen(str1);
    for (i = 0; i < len/ 2; i++)
    {
        if (str1[i] != str1[len - i - 1])
        {
            printf("not_ok:%s\n",str1);
            return 0;
        }
    }
    printf("ok:%s\n",str1);
}

#include<stdio.h>
#include<string.h>
//传入字符串,输出字符长度
int strLength(char s[]){
int i=0;
while(s[i]) i++;
return i;
}

//比较字符,判断是否回文
int isHW(char s[]){
int i=0,j=strLength(s)-1;
//第一个字符和最后一个字符比较是否相同,相同则i加1,j减1再次比较第二个字符和倒数第二个字符是否相同
while(i<j){
if(s[i]!=s[j]) return 0; //当字符不同时返回0
i++;
j--;
}
return 1;
}
int main(){
char s[1024];

gets(s);
if(isHW(s))
    printf("ok\n");
else
    printf("not_ok\n");

return 0;
}


#include <stdio.h>
#include <string.h>
#define MAXN 20
typedef enum {false, true} bool;
bool palindrome( char *s )
{
    int j = 0;
    char a[MAXN];//定义一个辅助数组
    strcpy(a,s);//既然题目给了咱们string.h库函数,咱们不用白不用
    int w=strlen(a);//获取字符数组的长度,注意strlen函数不能求指针传过来的字符串或字符数组的长度。..后续有时间我会在c技巧中来解释原因。
    int e = w/2;//得到一半的位置,头和尾同时比较,只需要一半
    bool flag = true;//定义一个flag标记
    while(j<e)
    {
        if(a[j]!=a[w-1])//开始头尾判断
        {
            flag = false;//如果头尾两个字符不相等,就不是回文字符串
            break;
        }
        j++;
        w--;
    }
    return flag;
}
int main()
{
    char s[MAXN];
    scanf("%s", s);
    if ( palindrome(s)==true )
        printf("ok:\n");
    else
        printf("not_ok:\n");
    printf("%s\n", s);
    return 0;

}