Đảo ngược chuỗi sử dụng đệ quy C++

bài tập C. Đảo ngược chuỗiCập nhật lần cuối vào ngày 19 tháng 8 năm 2022 21. 50. 43 (UTC/GMT +8 giờ)

Đệ quy C. Bài tập-9 có lời giải

Viết chương trình trong C để đảo ngược một chuỗi sử dụng đệ quy

Trình bày bằng hình ảnh

Đảo ngược chuỗi sử dụng đệ quy C++

Giải pháp mẫu

Mã C

#include
#define MAX 100
char* ReverseOfString(char[]);

int main()
{

    char str1[MAX],*revstr;
	printf("\n\n Recursion : Get reverse of a string :\n");
	printf("------------------------------------------\n");	

    printf(" Input any string: ");
    scanf("%s",str1);

    revstr = ReverseOfString(str1);//call the function ReverseOfString

    printf(" The reversed string is: %s\n\n",revstr);
    return 0;
}
char* ReverseOfString(char str1[])
{
    static int i=0;
    static char revstr[MAX];
    if(*str1)
    {
         ReverseOfString(str1+1);//calling the function ReverseOfString itself
         revstr[i++] = *str1;
    }
    return revstr;
}

Đầu ra mẫu

 Recursion : Get reverse of a string :                                                                        
------------------------------------------                                                                    
 Input any string: w3resource                                                                                 
 The reversed string is: ecruoser3w   

Sơ đồ

Đảo ngược chuỗi sử dụng đệ quy C++

Trình chỉnh sửa mã lập trình C

Có một cách khác để giải quyết giải pháp này?

Trước. Viết chương trình lấy phần tử lớn nhất của mảng bằng C sử dụng đệ quy
Kế tiếp. Viết chương trình trong C để tìm Giai thừa của một số bằng cách sử dụng đệ quy



Theo dõi chúng tôi trên FacebookTwitter để cập nhật thông tin mới nhất.

Lập trình C. Lời khuyên trong ngày

Làm cách nào để lấy thư mục hiện tại trong chương trình C?

#include 
char *getcwd(char *buf, size_t size);
Simple example:
#include 
#include 
#include 

int main() {
   char cwd[PATH_MAX];
   if (getcwd(cwd, sizeof(cwd)) != NULL) {
       printf("Current working dir: %s\n", cwd);
   } else {
       perror("getcwd() error");
       return 1;
   }
   return 0;
}

Giới thiệu. https. //chút. ly/3GZ34Fw



  • Xu hướng hàng tuần
  • Bài tập lập trình Java cơ bản
  • Truy vấn con SQL
  • Bài tập cơ sở dữ liệu Adventureworks
  • Bài tập cơ bản C# Sharp
  • SQL COUNT() với sự khác biệt
  • Bài tập chuỗi JavaScript
  • Xác thực biểu mẫu HTML JavaScript
  • Bài tập bộ sưu tập Java
  • hàm SQL COUNT()
  • Tham gia bên trong SQL
  • Hàm JavaScript Bài tập
  • Hướng dẫn Python
  • Bài tập mảng Python
  • Tham gia chéo SQL
  • Bài tập về mảng Sharp trong C#


Chương trình C này sử dụng hàm đệ quy & đảo ngược chuỗi do người dùng nhập vào cùng một vị trí bộ nhớ. Ví dụ. “chương trình” sẽ được đảo ngược thành “margorp”

Chương trình/Mã nguồn

Đây là mã nguồn của chương trình C để đảo ngược một chuỗi. Chương trình C được biên dịch thành công và chạy trên hệ thống Linux. Đầu ra chương trình cũng được hiển thị bên dưới

/*
 * C Program to Reverse the String using Recursion
 */
#include 
#include 
 
void reverse(char [], int, int);
int main()
{
    char str1[20];
    int size;
 
    printf("Enter a string to reverse: ");
    scanf("%s", str1);
    size = strlen(str1);
    reverse(str1, 0, size - 1);
    printf("The string after reversing is: %s\n", str1);
    return 0;
}
 
void reverse(char str1[], int index, int size)
{
    char temp;
    temp = str1[index];
    str1[index] = str1[size - index];
    str1[size - index] = temp;
    if (index == size / 2)
    {
        return;
    }
    reverse(str1, index + 1, size);
}

Giải thích chương trình

Trong chương trình C này, chúng ta đang đọc một chuỗi sử dụng biến mảng 'str1[]'. Gán giá trị độ dài của chuỗi sử dụng hàm strlen() cho biến kích thước

Cuộc thi chứng nhận Sanfoundry của tháng đang diễn ra. Hơn 100 chủ đề. Tham gia ngay

quảng cáo

quảng cáo

Nếu câu lệnh điều kiện được sử dụng để kiểm tra xem cả hai giá trị của biến 'chỉ số' và 'kích thước' có bằng nhau không và chia giá trị cho 2. Nếu điều kiện đúng thì thực hiện câu lệnh và trả về giá trị

Ngược lại, nếu điều kiện sai thì thoát khỏi câu lệnh. Một lần nữa gọi hàm reverse() bằng cách chuyển giá trị của biến 'str1' và tổng giá trị của biến 'index' với 1 và giá trị của biến 'size' làm đối số. In chuỗi đảo ngược từ chuỗi đã cho

Các trường hợp kiểm tra thời gian chạy

 
$ cc pgm12.c
$ a.out
Enter a string to reverse: malayalam
The string after reversing is: malayalam
 
$ a.out
Enter a string to reverse: cprogramming
The string after reversing is: gnimmargorpc

Chuỗi Giáo dục & Học tập Toàn cầu của Sanfoundry – Chương trình 1000 C

Kiểm tra điều này. Sách C. Video lập trình C nâng cao

Đây là danh sách những cuốn sách hay nhất về lập trình C, cấu trúc dữ liệu và thuật toán

Nếu bạn muốn xem các chương trình ví dụ khác về Chuỗi, hãy chuyển đến Các ví dụ về lập trình C trên Chuỗi. Nếu bạn muốn xem các ví dụ lập trình về tất cả các chủ đề, hãy chuyển đến Các ví dụ về lập trình C

Làm thế nào để đảo ngược một câu chuỗi trong C?

Chương trình1. c .
#include .
#include .
int chính ()
char str[40];
printf(" \n Nhập chuỗi cần đảo ngược. ");
scanf("%s", str);
// sử dụng hàm strrev() để đảo ngược chuỗi

Bạn có thể sử dụng đảo ngược () trên một chuỗi không?

Lớp String yêu cầu hàm reverse() , do đó, trước tiên hãy chuyển đổi chuỗi đầu vào thành StringBuffer, sử dụng phương thức StringBuffer. Sau đó sử dụng phương thức reverse() để đảo ngược chuỗi.

Làm cách nào để đảo ngược một chuỗi trong C mà không cần sử dụng strrev?

Đảo ngược chuỗi không có chức năng strrev .
int main() { char s[1000], r[1000];
printf("Nhập một chuỗi\n");
trong khi (s[đếm]. = '\0') đếm++;
kết thúc = đếm - 1;
for (bắt đầu = 0; bắt đầu < đếm; bắt đầu ++) { r[bắt đầu] = s[kết thúc];
r[bắt đầu] = '\0';
printf("%s\n", r);
trả về 0;