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=*str;
        *str=*ch;
        *ch='\0';       // 每次反转将最后一个赋值0,下次递归就不再处理
        reverse_string(str+1); // 递归调用
        *ch = tmp;
        len--;
    }
    return 0;
}
int main()
{
    char src[]="abcdef";
    reverse_string(src);
    printf("%s",src);
    return 0;
}

时间: 2024-10-05 05:11:50

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

【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

编写一个函数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

编写一个函数将参数字符串中的字符反向排列

编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列. 要求:不能使用C函数库中的字符串操作函数. 注意:将参数字符串中的字符反向排列,不是反向输出. 代码如下: #include<stdio.h> #include<stdlib.h> #include<assert.h> int my_strlen(char *str)//求字符串长度 { int count=0; while(*str++) { co

【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 = "

C语言编程 递归方法与非递归方法 实现将参数字符串中的字符反向排列

//题目要求要求:不能使用C函数库中的字符串操作函数(否则本题也没什么意义了啊) <1>非递归方法此方法基本思想是设立两个指针,分别指向字符串的头尾并且依次交换所指向的数据,代码中为left和right源代码: #include<stdio.h> #include<stdlib.h> #include<string.h>//因为要使用strlen()语句 void reverse_string(char str[]) { int temp; char *le

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

编写一个函数char_contains(char str[],char c), 如果字符串str中包含字符c则返回数值1,否则返回数值0

/* 编写一个函数char_contains(char str[],char c), 如果字符串str中包含字符c则返回数值1,否则返回数值0 */ #include <string.h> #include <stdio.h> // 可读性 -> 性能 -> 精简(重构) int char_contains(char str[], char c); int main() { //int result = char_contains("itc8ast"

C语言 编写一个函数,用递归方式求最大公约数。

编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数.利用递归方式实现. #include <stdio.h> int gcd(int a,int b) { int tmp; if(a==0 || b==0) return 0; if(a<b) { tmp=a; a=b; b=tmp; } if(a%b==0) return b; else return gcd(b,a%b); } int main() { int num; num=gcd(12,4); printf(&