原文代码很老式
#define _CRT_SECURE_NO_WARNINGS 1 #include#include #define MAX_COLUMN 20 #define MAX_LEN 1000 int Read_Column_Number(int *tags,int max); void ReArranged(char *output,const char *input,const int *tags,const int count); int main(){ int num_tags=0; int tags[MAX_COLUMN]={0}; char input[MAX_LEN]={0}; char output[MAX_LEN]={0}; fputs("Input the column number in pairs:->",stdout); num_tags=Read_Column_Number(tags,MAX_COLUMN); fputs("Input the str:->",stdout); while(gets(input)!=NULL){ ReArranged(output,input,tags,num_tags); printf("New->%sn",output); fputs("Input the str:->",stdout); } return 0;} int Read_Column_Number(int *tags,int max){ int count=0,ch=0; for(;scanf("%d",&tags[count])==1&&tags[count]>=0&&count =len||len_output==MAX_LEN-1) break; num_char=(count%2&&i==count-1)?(len-1):tags[i+1]-tags[i]+1; if(len_output+num_char>MAX_LEN-1) num_char=MAX_LEN-len_output-1; strncpy(output+len_output,input+tags[i],num_char); len_output+=num_char; output[len_output]=0; } }



