资源简介
该文档是反转字符串的,很多资源只是反转英文字符串,该文档包括可以反转中文的,并且有递归和非递归的方法。仅仅只是一个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星算法简单直观
相关资源
- 0-1背包问题-递归算法 c语言实现
- 已知head为单链表的表头指针,链表中
- 矩形切割,用的是递归算法。
- 5.1归并递归排序.cpp
- c++递归实现数组遍历和阶乘函数
- 递归实现的最简单分型图形实现
- 分治法解决凸包问题用C语言递归调用
- 数据结构c语言版建立二叉树,中序非
- 八皇后问题C++递归实现
- DES加密解密算法(可加解密中文字符
- c语言汉诺塔算法,递归,非递归
- C++实战源码-使用递归过程实现阶乘运
- 递归调用
- c++ 递归分鱼算法
- 语法分析C语言源代码附实验报告
- 数据结构单链表实现大数阶乘C++递归
- c语言实现二叉树的前中后序遍历 递归
- 完全可以运行的迷宫程序递归和非递
- 数据结构(C语言版)迷宫求解问题
- 计算24点C++源码
- 背包问题的求解
- 0-1背包问题 回溯算法代码
- 利用栈实现迷宫问题的非递归解法
- 编译原理课程设计-FOR循环 递归下降法
- 递归下降语法分析器 算术表达式
- 由先根次序和中跟次序建立二叉树,
- LL1文法分析器
- 利用栈实现迷宫的非递归求解
评论
共有 条评论