/* 编写函数reverse(s),将字符串s中的字符顺序颠倒过来,使用该函数编写一个程序
每次颠倒一个输入行中的字符顺序practice1_19 */
#include<stdio.h>
#define MAXLINE 1000 /* 允许的输入行的最大长度 */
static void reverse(char s[], int i);
int main(void)
{
char line[MAXLINE] = { 0 }; /* 当前的输入行 */
int c, i = 0;
freopen("C:\\\\Users\\wwwzh\\Desktop\\data.in", "r+", stdin);
freopen("C:\\\\Users\\wwwzh\\Desktop\\data.out", "w", stdout);
while ((c = getchar()) != EOF)
{
line[i] = c;
if (c == '\n')
{
i++;
line[i] = '\0';
reverse(line, i - 1);//i-1为\0的前一个字符
printf("%s", line);
i = -1;
}
i++;
}
return 0;
}
/* 将字符串s中的字符顺序颠倒过来 */
static void reverse(char s[], int i)
{
char reverse[MAXLINE] = { 0 };
int k = 0;
while (k < i)//因为\n的位置不需要动
{
reverse[k] = s[i - k - 1];
k++;
}
for (k = 0; k < i; k++)
s[k] = reverse[k];
}