从标准输入行读取输入行并在标准输出中打印这些输入行
来源:互联网 发布:淘宝黑盘羊 编辑:程序博客网 时间:2024/04/30 10:54
#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 conlumns[]);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("Original input:%s\n",input);rearrange(output,input,n_columns,columns);printf("Rearranged line:%s\n",output);} return EXIT_SUCCESS;}//读取列标号、如果超出规定范围则不予理会int read_column_numbers(int columns[],int max){int num=0;int ch;//取得列标号,如果所取得的梳子小于0则停止while(num<max && scanf("%d",&columns[num])==1 && columns[num]>=0)num+=1;//确认已经读取的标号为偶数个,因为他们是以对的形式出现的if(num%2!=0){puts("Last column number is not paired.");exit(EXIT_FAILURE);}//丢弃该行中包含最后一个数字的那部分内容while((ch=getchar())!=EOF && ch!='\n');return num;}//处理输入行,将指定列的字符连接在一起,输出行一NUL结尾void rearrange(char *output,char const *input, int n_columns,int const columns[] ){int col;int output_col;int len;len=strlen( input );output_col=0;//处理每对列标号for(col=0;col<n_columns;col+=2){int nchars=columns[col+1]-columns[col]+1;//如果输入行结束或输出行数组已满,就结束任务if(columns[col]>=len || output_col == MAX_INPUT - 1)break;//如果输出数据空间不够,只复制可以容纳的内容if(output_col +nchars > MAX_INPUT-1)nchars=MAX_INPUT - output_col -1;//复制相关数据strncpy(output + output_col,input + columns[col],nchars);output_col += nchars;}output[output_col]='\0 ';}
0 0
- 从标准输入行读取输入行并在标准输出中打印这些输入行
- C语言中从标准输入读取几行输入,并打印到标准输出上两种方法
- 编写一个程序,从标准输入读取几行输入并把他们打印在标准输出上,它同时应该计算checksum值,并写在字符后面
- 从标准输入读取几行输入,每行输入都要打印到标准输出上,前面加上行号。
- c语言:从标准输入读取几行输入,输入打印到标准输出上,加上行号
- 从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。
- 编写程序从标准输入读取几行输入。每行输入都打印在标准输出上,且前面加上行号
- 【C语言】从标准输入读取几行输入,每行输入都要打印到标准输出上,前面加上行号,并使此程序能够处理的输入行的长度没有限制。
- 从标准输入复制到标准输出并打印行号
- 编写一个程序,从标准输入读取几行输入。每行输入都要打印到标准输出上,前面要加上行号。
- 【c语言】从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号
- 程序:从标准输入读取几行输入,每行输入都要打印到标准输出上,前面要加上行号。
- 编写一个程序,从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。
- 从标准输入中读取几行输入,每行输入都要打印到标准输出上,前面要加上行号。在编写这个程序时要是图让程序能够处理的输入行的长度没
- 从标准输入读取
- 从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。在编写这个程序的时候要使用让这个程序能够处理的输入行的长度没有限制。
- 从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号,使能够处理的输入行的长度没有限制
- C语言:标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。行号不能有限制
- object-c获取毫秒值,时间差,计算执行耗费时间
- Apache OpenCMIS客户端API简介
- 大学生想创业?先找份工作吧
- 接口和抽象类区别
- 如何生成SSH key
- 从标准输入行读取输入行并在标准输出中打印这些输入行
- numpy在centos下的安装
- 设计模式之观察者模式
- Spring事务配置的五种方式
- OCM考试经验--RMAN基础详解(二)--配置、监控与管理
- Opencv对图像做腐蚀和膨胀处理的结果
- IP分片浅析
- 移动端开发网页注意
- 将电脑屏幕设置为绿色屏幕是否有护眼效果?