file39.c

来自「c 代码 用串的堆分配存储结构来实现小文本编辑器 不需要密码 就可以轻松解压」· C语言 代码 · 共 82 行

C
82
字号
#include<stdio.h>
typedef struct{
int linesign;
int *p;
int length;
}SqLine[20];
SqLine n;
void main()
{int InitLine();
 int CreatLine();
 int InsertLine(int,int,int,char *);
 int DeleteLine();
 int i,j,k,l;
 char array[10];
 l=10;
 char *q;
 scanf("%d",&k);
 q=array;
 InitLine();
 CreatLine();
 for(i=0;i<20;i++)
  {for(j=0;j<10;j++)
   scanf(" %c",q++);
 InsertLine(i,k,l,q);
 }
 DeleteLine();
}
int InitLine()
{int i,len;
 for(i=0;i<20;i++)
 {scanf("%d",&len);
  n[i].p=(char *)malloc(len*sizeof(char));
  if(!n[i].p)
  return(0);
  n[i].linesign=i+1;
  n[i].length=len;
 }
 return(1);
}
int CreatLine()
{int i,j,m;
 for(i=0;i<20;i++)
  {scanf("%d",&m);
    if(m>n[i].length)
    {n[i].p=(char *)malloc(m*sizeof(char));
     n[i].length=m;}
    for(j=0;j<n[i].length;j++)
    scanf(" %c",&(n[i].p[j]));
    }
   return(1);
}
int  InsertLine(int i,int j,int l,char * r)
{int k=0;
 char *q,*s;
 switch(i){
 case 0:
 case 1:
 case 3:
 case 4:
 case 5:
 case 6:
 case 7:
 case 8:
 case 9:
 case 10:
 case 11:
 case 12:
 case 13:
 case 14:
 case 15:
 case 16:
 case 17:
 case 18:
 case 19:
 case 20:n[i].p=(char *)malloc((n[i].length+l)*sizeof(char));if(!n[i].p) return(0);if(j<1||j>n[i].length+1)return(0);q=&(n[i].p[j-1];
	 for(s=&(n[i].p[n[i].length-1]);s>=&(n[i].p[j]);s--)
	 *(s+l)=*s;
	 for(z=j-1;z>
	 n[i].[j-1]=*(r+9);
  }      n[i].length=n[i].length+l;

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?