字符串翻转
#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);
}

浙公网安备 33010602011771号