判断是否为回文

时间:2022-05-03
本文章向大家介绍判断是否为回文,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
//判断是否为回文——判断用户输入的字符串是否为回文。回文是指正反拼写形式都是一样的词,譬如“racecar”。
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;

bool IsPlalindromeW(const wchar_t* str)
{
	size_t len = wcslen(str);
	for (int i = 0; i < len; ++i)
	{
		if (str[i] != str[len - i - 1])
			return false;
	}
	return true;
}

bool IsPlalindrome(const char* str)
{
	if (str == NULL)
		return false;
	setlocale(LC_ALL, "chs");
	int len = mbstowcs(NULL, str, NULL);
	if (len <= 0)
		return false;
	wchar_t* dst = new wchar_t[len + 1];
	int change = mbstowcs(dst, str, len + 1);
	bool bRes = IsPlalindromeW(dst);
	delete[] dst;
	setlocale(LC_ALL, "");
	return bRes;
}

int main(int argc, char* argv[])
{
	char* str = "斗鸡山上山鸡斗";
	cout << boolalpha;
	cout << IsPlalindrome(str) << endl;
	system("pause");
	return 0;
}