方法一:比如定义了一个数组,然后将所有的数组元素都向前移一个位置,那么可以实现对第一个字符的删除操作,例如:
删除数组中下标为k的元素。
#include
#define N 10
main()
{
int a[20]={0,1,2,3,4,5,6,7,8,9};
int k,i;
printf("数组中原来的数据为:\n");
for(i=0;i
printf("%d,",a[i]);
printf("\n请输入要删除的下表位置k:");
scanf("%d",&k);
if(k<0||k>=N)
{
printf("输入的位置k不合法!\n");
return;
}
for(i=k;i
a[i]=a[i+1];
printf("删除后的数据顺序为\n“,k);
for(i=0;i
printf("%d,",a[i]);
}
这种做法中有一个问题是常常要将这个数组的空间设置得足够,否则在移动数据的时候,可能会将某些数据遗失掉,另外的一个解决办法可以是将可能丢失的数据移交给别的数存储,然后再借回来。
方法二:这种方法常常出现在以下情况下用,当你想删除某数组元素的某个下表后的所有元素的时候,这是你只需要将这个下标下的对应元素赋值以'\0'即可。这个方法就不进行举例了。
另外补充一个很好的C语言删除实例
规定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。
#include
void fun(char *s)
{
int k=0,j=0,n=strlen(s);
while(s[k]=='*')
k++;
for( ; k
s[j++]=s[k];
}
main()
{
char s[81];
printf("Enter a string:\n");
gets(s);
fun(s);
printf("The string after deleted:\n");
puts(s);
}