逆转字符串
时间:2022-05-03
本文章向大家介绍逆转字符串,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
逆转字符串——输入一个字符串,将其逆转并输出
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
using namespace std;
//ANSIC,有中文就出错
//bool ReverseStringA(char* str)
//{
// int len = strlen(str);
// unsigned char temp;
// for (int i = 0; i < len / 2; ++i)
// {
// temp = str[i];
// str[i] = str[len - i - 1];
// str[len - i - 1] = temp;
// }
// return true;
//}
//UNICODE,双字节
bool ReverseStringW(wchar_t* str)
{
int len = wcslen(str);
wchar_t temp;
for (int i = 0; i < len / 2; ++i)
{
temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
return true;
}
bool ReverseString(char* str)
{
const char* local = setlocale(LC_ALL, NULL);//返回当前本地化,setlocale(LC_ALL,"")才是使用默认本地化
char* setlocal = setlocale(LC_ALL, "chs");
int len = mbstowcs(NULL, str, NULL);
wchar_t* buf = new wchar_t[len + 1];
wmemset(buf, 0, len + 1);
int change = mbstowcs(buf, str, len+1);
if (change == len)
{
if (!ReverseStringW(buf))
{
goto ERROR;
}
change = wcstombs(NULL, buf, NULL);
change = wcstombs(str, buf, change + 1);
delete []buf;
setlocal = setlocale(LC_ALL, "");
return true;
}
ERROR:
delete[]buf;
setlocal = setlocale(LC_ALL, "");
return false;
}
int main(int argc, char* argv[])
{
//char* str = "abcde";//代码区
//char str[] = "abcde";
char str[] = "含有中文abc";
//wchar_t* str = L"含有中文abc";//代码区,又犯了!
//wchar_t str[] = L"含有中文abc";
//std::locale loc("");
//std::wcout.imbue(loc);
if (ReverseString(str))
cout << str << endl;
//wcout << buf << endl;
system("pause");
return 0;
}
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 谁能想到,我给技术总监“上了一课”
- 设计模式速览
- 序列模型——吴恩达深度学习课程笔记(五)
- 30分钟学会pyecharts数据可视化
- 用Keras从零开始6步骤训练神经网络
- Keras结构化数据预处理范例——Titanic生存预测
- 从原理上搞懂如何设置线程池参数大小?
- Keras图像数据预处理范例——Cifar2图片分类
- Keras文本数据预处理范例——IMDB影评情感分类
- JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof 使用详解
- Go 垃圾回收
- 如何在SpringBoot中异步请求和异步调用
- 实现 memcached 客户端:TCP、连接池、一致性哈希、自定义协议
- 30分钟学会LightGBM
- 三种计算图