数据结构:
Status ListDele(SqList *L,int i,ElemType *e)
{
int k;
if(L -> length == 0)
{
return ERROR;
}
if(i > L -> length || i < 1)
{
return ERROR;
}
*e = L -> data[i - 1];
if(i < L ->length)
{
for(k = i;k < L -> length;k ++)
{
L -> data[k - 1] = L -> data[k];
}
}
L ->length --;
return OK;
}
C语言:
#include <stdio.h>
#include <string.h>
#define MAX 100
void List(char *L,int i,char *e)
{
int k;
int x;
x = strlen(L);
if(x == 0)
{
printf("数组为空,无删除项");
}
else
{
if(i < 1 || i > x)
{
printf("i超限");
}
else
{
*e = L[i - 1];
if(i < x)
{
for(k = i;k < x;k ++)
{
L[k - 1] = L[k];
}
}
L[x - 1] = '\0';
}
}
}
int main()
{
char num[MAX];
int i;
char x;
printf("请输入一串字符:");
gets(num);
printf("请输入要删除的位置:");
scanf("%d",&i);
List(num,i,&x);
printf("删除后的数组:");
puts(num);
printf("被删除的元素 = %c",x);
}