程序1.1 重排字符 (rearrange.c)

这个C语言程序从标准输入读取行,处理后输出。它首先读取列号对,然后根据这些列号截取输入行并打印。程序确保处理的列号成对出现,并对超出限制的情况进行处理。
摘要由CSDN通过智能技术生成
/*
** 这个程序从标准输入(键盘)中读取输入行并按需求处理后在标准输出(屏幕)中打印,
** 每个输入行的后面一行是该行按需求处理后的输出内容。
**
** 输入的第1行是一串列标号,串的最后以一个负数结尾。
** 这些列标号成对出现,说明需要打印的输入行的列的范围。
** 例如,0 3 10 12 -1 表示第0列到第3列,第10列到第12列的内容将被打印。
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_COLS 	20		/* 所能处理的最多列标号数量 */
#define MAX_INPUT 	1000	/* 所能处理的最大输入行长度 */

int read_column_numbers(int columns[], int max);
void rearrange(char *output, char const *input, int n_columns, int const columns[]);

int main(void)
{
	int 	n_columns;				/* 记录君:实际读取的列标号个数 */
	int 	columns[MAX_COLS]; 		/* 容器君:实际读取的列标号们 */
	char 	input[MAX_INPUT];		/* 容器君:输入行字符串 */
	char 	output[MAX_INPUT];		/* 容器君:输出行字符串 */

	/*
	** 读取该串列标号并统计个数
	*/
	n_columns = read_column_numbers(columns, MAX_COLS);

	/*
	** 读取、处理和打印剩余的输入行
	*/
	while(gets(input) != NULL)
	{
		printf("原始输入: %s\n", input);
		rearrange(output, input, n_columns, colum
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值