判断是否为回文

//判断是否为回文——判断用户输入的字符串是否为回文。回文是指正反拼写形式都是一样的词,譬如“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;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏chenssy

【死磕Sharding-jdbc】---SQL解析-INSERT解析

分析insert解析之前,首先看一下mysql官方对insert语法的定义,因为SQL解析跟语法息息相关:

15120
来自专栏Spark学习技巧

Hive学习之Lateral View

Lateral view与UDTF函数如explode()一起使用,UDTF对每个输入行产生0或者多个输出行。Lateral view首先在基表的每个输入行应用...

41140
来自专栏后端技术探索

分表查询统计的一个具体案例

问题描述 mysql数据库在数据量较大的情况下,对数据表进行水平分表,按照年份,如下:

11010
来自专栏大数据架构

SQL优化(五) PostgreSQL (递归)CTE 通用表表达式

35660
来自专栏开发 & 运维分享

PHP+MySQL专家编程——MySQL联接

我们通常会在SELECT语句中使用联接,MySQL查询的联接使我们能够利用一个SQL语句查询或操作多个表的数据。

12610
来自专栏编码小白

ofbiz实体引擎(八) 创建表

/** * @author 郑小康 * * 1.检验实体是否为空 * * 2.检验视图实体是否为空 ...

28630
来自专栏源哥的专栏

字符串分拆函数

在Oracle中,如果一个包含分隔符的字符串(比如说“55*62*77”,这个字符串是用*号做分隔符,可以拆分成三个数“55”,“62”和“77”),要将它们拆...

7320
来自专栏杨建荣的学习笔记

怎样突破表名30个字符的限制(r2笔记51天)

根据oracle的规范,对象的长度最大为30位,也就是说,在平时的使用中如果碰到表名长度大于30位,首先oracle是不答应的,它会提示idnetifier t...

29860
来自专栏后端技术探索

分表查询统计的一个具体案例

问题描述 mysql数据库在数据量较大的情况下,对数据表进行水平分表,按照年份,如下:

15610
来自专栏简书专栏

mysql必知必会2

语法:delete from {1} where {2} 第一对大括号替换为表名,第二对大括号替换为查询条件。 注意:删除语句一定要写删除条件,否则整张表删...

13320

扫码关注云+社区

领取腾讯云代金券