方法一:只用一个字符串
#include<stdio.h>
#include<string.h>
void reverse(char a[]);
int main()
{
char a[300]="";
gets(a);
reverse(a);
puts(a);
return 0;
}
void reverse(char a[])
{
int i,j;
char t,k;
k=(char)strlen(a);
for(i=0,j=k-1;i<k/2;i++,j--)
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
a[k]='\0';
}
在VS2019下,需将源文件的gets做些修改:
#include<stdio.h>
#include<string.h>
void reverse(char a[]);
int main()
{
char a[300] = "";
gets_s(a,300);
reverse(a);
puts(a);
return 0;
}
void reverse(char a[])
{
int i, j;
char t, k;
k = (char)strlen(a);
for (i = 0, j = k - 1; i < k / 2; i++, j--)
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
a[k] = '\0';
}
方法二:用两个字符串
#include<stdio.h>
#include<string.h>
void reverse(char a[]);
int main()
{
char a[300]="";
gets(a);
reverse(a);
puts(a);
return 0;
}
void reverse(char a[])
{
int i,j;
char b[300]="";
j=(int)strlen(a)-1;
for(i=0;i<=j;i++)
{
b[i]=a[i];
}
b[i]='\0';
for(i=0;i<(int)strlen(a);j--,i++)
{
a[i]=b[j];
}
a[i]='\0';
}
在VS2019下,需将源文件的gets做些修改:
#include<stdio.h>
#include<string.h>
void reverse(char a[]);
int main()
{
char a[300] = "";
gets_s(a, 300);
reverse(a);
puts(a);
return 0;
}
void reverse(char a[])
{
int i, j;
char b[300] = "";
j = (int)strlen(a) - 1;
for (i = 0; i <= j; i++)
{
b[i] = a[i];
}
b[i] = '\0';
for (i = 0; i < (int)strlen(a); j--, i++)
{
a[i] = b[j];
}
a[i] = '\0';
}
方法二for循环里的判断条件也可以这样:
#include<stdio.h>
#include<string.h>
void reverse(char a[]);
int main()
{
char a[300]="";
gets(a);
reverse(a);
puts(a);
return 0;
}
void reverse(char a[])
{
int i,j;
char b[300]="";
j=(int)strlen(a)-1;
for(i=0;a[i]!='\0';i++)
{
b[i]=a[i];
}
b[i]='\0';
for(i=0;a[i]!='\0';j--,i++)
{
a[i]=b[j];
}
a[i]='\0';
}
在VS2019下,需将源文件的gets做些修改:
#include<stdio.h>
#include<string.h>
void reverse(char a[]);
int main()
{
char a[300] = "";
gets_s(a, 300);
reverse(a);
puts(a);
return 0;
}
void reverse(char a[])
{
int i, j;
char b[300] = "";
j = (int)strlen(a) - 1;
for (i = 0; a[i] != '\0'; i++)
{
b[i] = a[i];
}
b[i] = '\0';
for (i = 0; a[i] != '\0'; j--, i++)
{
a[i] = b[j];
}
a[i] = '\0';
}
方法三:只用一个字符串(最简)
#include<stdio.h>
#include<string.h>
void reverse(char a[]);
int main()
{
char a[300]="";
gets(a);
reverse(a);
return 0;
}
void reverse(char a[])
{
int i;
for(i=(int)strlen(a)-1;i>-1;i--)
printf("%c", a[i]);
}
在VS2019下,需将源文件的gets做些修改:
#include<stdio.h>
#include<string.h>
void reverse(char a[]);
int main()
{
char a[300] = "";
gets_s(a, 300);
reverse(a);
return 0;
}
void reverse(char a[])
{
int i;
for (i = (int)strlen(a) - 1; i > -1; i--)
printf("%c", a[i]);
}