【C语言】reverse_string(char * string)(递归实现)

递归实现reverse_string(char * string)函数。

翻转 原来的字符串

是改变

不是打印出来。

/*
编写一个函数reverse_string(char * string)(递归实现)
实现:将参数字符串中的字符反向排列。
要求:不能使用C函数库中的字符串操作函数。

*/

#include <STDIO.H>

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;
}
时间: 2024-11-11 07:46:12

【C语言】reverse_string(char * string)(递归实现)的相关文章

reverse_string(char *string)递归实现字符串翻转

函数实现之前 先看一个例子 void fun(int i) { if (i > 0) fun(i / 2); printf("%d ",i); } int main(void) { fun(10); return 0; } 输出结果是什么? 这是<c语言深度剖析>中的一个例子  在这个例子中 printf("%d ",i):语句是fun函数的一部分 必定执行一次fun函数,就要打印一次.函数展开过程如下: void fun(int i) { //f

【c语言】编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列。

/*编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列. 要求:不能使用C函数库中的字符串操作函数.*/ #include <stdio.h> #include <assert.h> void reverse_string(char const * string) { assert( string != NULL ); if( *string != '\0' ) { string++; reverse_string

【C语言】编写一个函数reverse_string(char * string)(递归实现),将参数字符串中的字符反向排列,不能使用C函数库中的字符串操作函数。

//编写一个函数reverse_string(char * string)(递归实现) //实现:将参数字符串中的字符反向排列. //要求:不能使用C函数库中的字符串操作函数. #include <stdio.h> #include <assert.h> void reverse_string(char const * string) { assert( string != NULL ); if( *string != '\0' ) { string++; reverse_stri

C语言 编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列

编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列. #include <stdio.h> #include <string.h> #include <assert.h> int reverse_string(char * str) { assert(str); int len=strlen(str); char *ch=str+len-1; while(len>1) { char tmp=*st

【C语言】编写一个函数reverse_string(char * string)(递归实现

#include <stdio.h> #include <stdlib.h> void reverse_string(char * string) {     string++;     if (*string!='\0')     {         reverse_string(string);     }     string--;     printf("%c", *string); } int main() {     char *p = "

编写一个函数reverse_string(char * string)(递归实现)

编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列. 要求:不能使用C函数库中的字符串操作函数. #include<stdio.h> #include<assert.h> #include<stdlib.h> int my_strlen(const char*str) { assert(str); int count = 0; while (*str) { count++; str++; } retur

char*,string和const char*间的转换

//1.char*转string char* c ="abc"; string s(c); //2.const char*转string const char* c_s ="abc"; string s(c_s); //3.string转const char* string s ="abc"; const char* c_s = s.c_str(); //4.string转char* string s="abcde"; con

char*,string,float,int 转换

char* 转 float: double atof (const char* str); /* atof example: sine calculator */ #include <stdio.h> /* printf, fgets */ #include <stdlib.h> /* atof */ #include <math.h> /* sin */ int main () { double n,m; double pi=3.1415926535; char bu

char * string nsstring 之间的相互转换

std::string转NSString std::string _string("hello"); NSString *str= [NSString stringWithCString:_string.c_str() encoding:[NSString defaultCStringEncoding]]; NSString转std::string NSString * nsfaceName[email protected]"HELLO"; const char *