您的位置:首页 > 其它

递归实现将参数字符串中的字符反向排列,要求不能使用C函数库中的字符串操作函数

2015-05-11 15:21 796 查看
<span style="font-size:18px;">#include<stdio.h>
void reverse_string(char *string)
{
int len=0;<span style="white-space:pre">		</span>//strlen()的实现
char*q=string;
while(*q != '\0')
{
q++;
len++;
}
if(len<=1)
return;
else
{</span>
<span style="font-size:18px;"><span style="white-space:pre">		</span>int tmp=string[0];<span style="white-space:pre">		</span>//递归实现的字符串翻转
string[0]=string[len-1];
string[len-1]='\0';
reverse_string(string+1);
<span style="white-space:pre">		</span>//reverse_string(string++);这样写是错误的,下一次递归调用时没有将下一个字符的地址传过去且当下次返回来时string已经发生改变
<span style="white-space:pre">		</span>//reverse_string(++string);这样写也是错误的,虽然下一次递归调用时将下一个字符的地址传过去了,但是当下次返回来时string也已经发生了变化
string[len-1]=tmp;

}
}
int main()
{
char p[]="bit-tech";
reverse_string(p);
printf("%s\n",p);
return 0;
}</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐