程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> [c語言] 編寫一個函數reverse_string(char * string)(遞歸實現)

[c語言] 編寫一個函數reverse_string(char * string)(遞歸實現)

編輯:關於C
編寫一個函數reverse_string(char * string)(遞歸實現)  實現:將參數字符串中的字符反向排列。 要求:不能使用C函數庫中的字符串操作函數。  
#include <stdio.h>
#include <assert.h>

int my_strlen(const char *str) //自定義的計算字符串長度的函數
{
    assert(str);
    int count = 0;
    while (*str)
    {
        count++;
        str++;
    }
    return count;
}

void reverse_string(char *str)//翻轉字符串  將abcdef翻轉為fedcba
{
    assert(str);
    char temp = 0;
    int len = my_strlen(str);
    if (len > 0)
    {
        temp = str[0];         
        str[0] = str[len - 1];
        str[len - 1] = '\0';
        //遞歸調用,限制條件len>0 ,每次調用的變化str++;
        reverse_string(str+1);
        str[len-1] = temp;
    }
}
int main()
{
    char arr[] = "abcdef";
    reverse_string(arr);
    printf("%s\n", arr);
    system("pause");
    return 0;
}

 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved