/*
** 这个程序从标准输入(键盘)中读取输入行并按需求处理后在标准输出(屏幕)中打印,
** 每个输入行的后面一行是该行按需求处理后的输出内容。
**
** 输入的第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
程序1.1 重排字符 (rearrange.c)
最新推荐文章于 2024-03-27 23:37:10 发布
这个C语言程序从标准输入读取行,处理后输出。它首先读取列号对,然后根据这些列号截取输入行并打印。程序确保处理的列号成对出现,并对超出限制的情况进行处理。
摘要由CSDN通过智能技术生成