c語(yǔ)言怎么逆序輸出字符串

小億
90
2024-09-05 08:28:07

在C語(yǔ)言中,要逆序輸出字符串,可以使用以下方法:

  1. 使用雙指針?lè)ǎ?/li>
#include<stdio.h>
#include<string.h>

void reverse_string(char *str) {
    int len = strlen(str);
    char *start = str;
    char *end = str + len - 1;
    char temp;

    while (start < end) {
        temp = *start;
        *start = *end;
        *end = temp;

        start++;
        end--;
    }
}

int main() {
    char str[] = "Hello, World!";
    printf("原始字符串: %s\n", str);
    
    reverse_string(str);
    printf("逆序字符串: %s\n", str);

    return 0;
}
  1. 使用遞歸方法:
#include<stdio.h>
#include<string.h>

void reverse_string_recursive(char *str, int start, int end) {
    if (start >= end) {
        return;
    }

    char temp = str[start];
    str[start] = str[end];
    str[end] = temp;

    reverse_string_recursive(str, start + 1, end - 1);
}

int main() {
    char str[] = "Hello, World!";
    printf("原始字符串: %s\n", str);
    
    int len = strlen(str);
    reverse_string_recursive(str, 0, len - 1);
    printf("逆序字符串: %s\n", str);

    return 0;
}

這兩種方法都可以實(shí)現(xiàn)字符串的逆序輸出。第一種方法使用雙指針?lè)?,從字符串的頭尾開(kāi)始交換字符,直到兩個(gè)指針相遇;第二種方法使用遞歸,將字符串的頭尾字符交換,然后對(duì)剩余的子字符串進(jìn)行遞歸處理。

0