【C语言】reverse_string(char * string)(递归)
递归reverse_string(char * string)性能。
逆转 原始字符串
更改
相反,打印出的。
/*
编写一个函数reverse_string(char * string)(递归实现)
实现:将參数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数。 */ #include <STDIO.H> //1
void reverse_string(char * string)
{
static char a[100]={0}; // 静态变量 记录字符串
static char *p=a; //两个指针,不同地方使用
static char *q=a;
if(*string!='\0') //递归出口
{
*q=*string; //递归前使数组a 元素 初始化为目标字符串
q++;
reverse_string(string+1);//递归调用
*string=*p; //实现翻转
p++;
}
} int main()
{
char s[]="hello world";
reverse_string(s);
printf("%s\n",s);
return 0;
}
//2.
#include <STDIO.H> void test(char *p)
{
static char *ep=p;
char aa=*p;
if(*p!='\0')
test(p+1);
else
return ;
*ep=aa;
ep++;
} int main() {
char a[]="hello";
test(a);
puts(a);
return 0;
}
版权声明:本文博主原创文章,博客,未经同意不得转载。
【C语言】reverse_string(char * string)(递归)的更多相关文章
- 编写一个函数 reverse_string(char * string)实现:将参数字符串中的字符反向排列 。(递归实现)
要求:不能使用C函数库中的字符串操作函数. 思路:在递归函数的调用时,先应该定义一个指针型char字符串.函数内部应先调用自己,在打印,这样才能保证字符串是从最后一个开始输出. #include< ...
- const char* && string && String^ 类型转换
const char* && string && String^ 类型转换 const char* ---> string const char * cw= &q ...
- const char* <----- > string
(1) const char* <----- string const char* const_txt_path=txt_path.c_str(); (2) string ...
- Javascript语言精粹之String常用方法分析
Javascript语言精粹之String常用方法分析 1. String常用方法分析 1.1 String.prototype.slice() slice(start,end)方法复制string的 ...
- c#中 uint--byte[]--char[]--string相互转换汇总
原文:c#中 uint--byte[]--char[]--string相互转换汇总 在在做一些互操作的时候往往需要一些类型的相互转换,比如用c#访问win32api的时候往往需要向api中传入DWOR ...
- MFC中char*,string和CString之间的转换
MFC中char*,string和CString之间的转换 一. 将CString类转换成char*(LPSTR)类型 方法一,使用强制转换.例如: CString theString( &q ...
- CString转char * ,string
CString头文件#include <afx.h> string头文件#include <string.h> 1.CString转char * CString cstr; c ...
- wchar_t char string wstring 之间的转换
wchar_t char string wstring 之间的转换 转:http://blog.csdn.net/lbd2008/article/details/8333583 在处理中文时有时需要进 ...
- VS2013 MFC C++ CString ,const char , char, string 类型转换
VS2013 测试 以下测试加入头文件: # include <string>#include <cstdlib>using namespace std; //-------- ...
随机推荐
- Linux内核IP层的报文处理流程(一)
本文主要讲解了Linux内核IP层的整体架构和对从网卡接受的报文处理流程,使用的内核的版本是2.6.32.27 为了方便理解,本文采用整体流程图加伪代码的方式对Linxu内核中IP整体实现架构和对网卡 ...
- 一个Jquery特效(转)
见证花开!!码上有花 先看效果 尝试点击,IE9+ 画心 清空 ... 请自由点击画布 创意来自于网络 可搜搜[程序员表白] 看上去像是[当耐特]的作品的加工版本 代码 当然要自己写了 能力有限, ...
- 对HGE游戏引擎的一次封装
HGE游戏引擎是一个开源2D游戏引擎,基于directX. 它的渲染及逻辑是基于帧回调的框架模式, 其提供一些主要的图像操作和输入控制功能. 我在之前写一个2D游戏的时候对它整个框架进行了一次封装,非 ...
- C++ - Identifier not found
This is because forward declaration in C++: Compiler needs to know function prototype when functi ...
- 动态创建ImageView
1.布局文件 <LinearLayout android:id="@+id/viewGroup" android:layout_width="wrap_conten ...
- 【ThinkingInC++】53、构造函数,析构函数,全局变量
/** * 图书:[ThinkingInC++] * 特征:构造函数,析构函数,全局变量 * 时刻:2014年9一个月17日本18:07:43 * 笔者:cutter_point */ #includ ...
- android存储阵列数据SharedPreferences
假设要数组数据(如boolean[] .int[]等)到SharedPreferences时,我们能够先将数组数据组织成json数据存储到SharedPreferences,读取时则对json数据进行 ...
- CSDN 夏令营课程 项目分析
主题如以下: 正确改动后的程序: #include <iostream.h> //using namespace std; class BASE { char c; public: BAS ...
- 揭秘传智播客毕业班的超级薪水7k内幕系列II----Offer工资表5.7k,为什么不能让老师就业就业
在上海传智播客宋学生Java六期学员.在班级尚未毕业阶段,私自投递简历,而且逃课去面试,获得某国企的Offer.入职薪资5.7K,,兼有五险一金.饭补等齐全福利,因就业老师要求班级同学未毕业不要急于就 ...
- javascript的位操作、整数、二进制
位与(x&y):对操作数进行二进制与的操作,如果两个操作数的某一位两个都为1,将对应的结果位设为1. 0x0007 & 0x0003 = 0x0003 \ 一个小型年老棕色的狗:64 ...