字符串翻转

#include <iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<time.h>
#include<windows.h>

using namespace std;

/*
    字符串翻转
*/

#pragma warning(suppress : 4996)

void revise( char *s1, char *dest);
void revise2(char *s1);

int main() {
    char a1[] = "Hello Allen";
    char d1[100]="";
    //revise(a1, d1);
    //printf("%s", d1);

    revise2(a1);
    for (int i = 0; i < strlen(a1); i++)
    {
        printf("%c", a1[i]);
    }
    
    return 0;
}

//revise 在新的字符串中保存翻转后的结果
void revise( char *s1, char *dest) {
    int len = strlen(s1);
    int i;
    for ( i = 0; i < len; i++)
    {
        dest[len - 1 - i] = s1[i];
        printf("%c\n", s1[i]);
        printf("%c\n", dest[len - 1 - i]);
    }
    dest[len] = '\0';
}

//revise2 在原始字符串中保存翻转后的结果
void revise2(char *s1) {
    int len = strlen(s1);
    char *t = (char *)malloc(sizeof(char)*(len + 1));
    if (t == NULL)return;
    int i, j;
    for (i = 0; i < len; i++)
    {
        t[len - 1 - i] = s1[i];
        
    }
    t[len] = '\0';
    for ( j = 0; j < len; j++)
        s1[j] = t[j];
    free(t);
}

posted @ 2022-07-04 15:19  江南王小帅  阅读(34)  评论(0)    收藏  举报