QQ:3020889729 小蔡
本文章旨在于学习总结。
实现要求
- 首行输入需要截取列标,可输入多个,但应该是一一对应的(总是一对数字),以负数作为输入结束判断。
- 输入字符串——按列标要求截取输出。
实现需要的库
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
引用的函数
- strlen(x) :计算字符串长度
- strncpy(y,x,n) :复制x中指定长度字符串到y中
- exit() :异常退出
实现思路
/*
1.首先处理输入的列标,将它们一一对应的保存到一个数组中,然后判断结束。
2.然后对输入的字符串进行与一对列标差的值对应的字符串截取,但是这里用strncpy即可;
因为有多对列标需要处理,所以会用到for循环。
(其它处理中的问题,在代码中会具体分析)
*/
代码(函数式编程)
读取输入的列标,并存入一个数组
用一个函数处理列标的读取,传入参数为,事先创建好的整型数组的指针(首地址)和 数组大小。
(数组存储需要处理的一个个列标)
//int columns[],声明一个数组形参
int read_column_numbers(int columns[], int max)
{
int num = 0;
int ch;
//获取列标号
// 判断列标以及列标数目是否满足条件
// 负数,意味着列标录入结束
while(num < max && scanf("%d", &columns[num]) && columns[num] >= 0)
{
num += 1; // 准备下一个列标的存取和检测
}
// 验证列标数目是否为偶数——输入的有效列标应该是一一对应的
if(