资源简介
该文档是反转字符串的,很多资源只是反转英文字符串,该文档包括可以反转中文的,并且有递归和非递归的方法。仅仅只是一个cpp文件,只要新建一个新的空工程,直接加载该cpp就可以运行使用了。
代码片段和文件信息
#include
#include
//#include
//#include
#include
#include
using namespace std;
#define DEBUG 1
// char* Reverse(char* s)
// {
// //将q指向字符串最后一个字符
// char* q = s ;
// while( *q++ ) ;
// q -= 2 ;
//
// //分配空间,存储逆序后的字符串。
// // new是分配内存
// // char是按char类型来分配和使用内存
// // 中括号是内存的多少,则能放多少个char。
// // sizeof(char)算出一个char占内存中的多少个字节
// // (q-s+2)即是算出需要多少个char。
// // s是字符的开始地址,q是最后一个字符的地址,则字符的长度是q-s+1
// // 由于C语言还需要一个字符来存放结束符‘\0‘(它也是一个char),所以需要的内存必须能放q-s+1+1=q-s+2个char。
// char* p = new char[sizeof(char) * (q - s + 2)] ;
// char* r = p ;
//
// // 逆序存储
// while(q >= s)
// {
// //取q的地址值赋值给p地址值,然后q减1的值赋值给P+1的值
// *p++ = *q-- ;
// }
// *p = ‘\0‘ ;
// printf(“输出字符%s“r);
// return r ;
// }
//
// int main()
// {
// char* input = new char[100];
// printf(“Please input string:“);
// scanf(“%s“input);
// printf(“you input string is %s\n“input);
// Reverse(input);
// return 1;
// }
// 不是用递归完成的
void Reverse(char* m_data)//字符串反转,有中文时也不会出错
{
char e(0x80);
size_t ij;
size_t length(strlen(m_data));
char* str=new char[length+1];
for(i=0j=length-1;i {
if(m_data[i]&e)//和
{
str[j-1]=m_data[i];
str[j--]=m_data[++i];
}
else//1
{
str[j]=m_data[i];
}
}
- 上一篇:简单科研管理系统-----数据库课程设计
- 下一篇:A星算法简单直观
相关资源
- 编译原理用C++消除左递归
- KMP中文字符匹配算法的C++实现
- 自编八皇后问题递归、非递归算法
- 经典的分形入门程序-Koch曲线的递归算
- 06.什么是递归.wmv目前数据结构最好的
- 编译原理LL1文法的mfc实现含消除左递
- LL1文法消除左递归编译原理mfc实现完
- 用递归方法求解0/1背包问题
- 编译原理LL(0)C语言小子集源代码
- 对于任意给定的输入串词法记号流进
- 编译原理--递归下降分析程序C++
- 运用递归下降子程序法,实现整数四
- PL0语法分析器(递归子程序法)
- 编译原理语法分析—递归下降分析法
- 编译原理大作业递归下降法
- 非递归预测分析;C++实现LL1文法分析
- 递归下降语法分析器C++实现
- Pascal文法子集的词法分析及递归下降
- 实验三-递归下降子程序分析(本代码
- 递归下降法翻译if then条件语句
- C++ 递归下降布尔表达式
- 递归下降分析法实现LL(1)文法的语
- 编译原理_递归下降分析语法分析_C语
- SNL递归下降语法分析 C++实现
- 用栈非递归方法迷宫找出路
- 分别用栈和递归来实现十进制转换为
- 二叉树非递归遍历源码
- 众数问题c实现
- 24点算法 C++实现
- 汉诺塔非递归算法 用栈 C语言
评论
共有 条评论