c程序设计语言(第二版.新版)习题1_19

/* 编写函数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];
}

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值