永发信息网

用C语言如何删除数组中的重复元素

答案:3  悬赏:40  手机版
解决时间 2021-04-23 22:42
  • 提问者网友:贪了杯
  • 2021-04-23 04:38
希望能在定义的那个数组中就地删除,而不需再另定义数组进行转移!
最佳答案
  • 五星知识达人网友:骨子里都是戏
  • 2021-04-23 04:48

#include <stdio.h>
int main()
{
char str[100];
int i=0,j;
printf("input a string \n");
gets(str);
while(i<strlen(str))
{ j=i+1;
printf("delelte result %d\n",strlen(str));
while(j<strlen(str))
{ if(str[j]==str[i])
{
str[j]='\0';
strcat(str,str+j+1) ;
}
else j++;
}
i++ ;


}
puts(str);


}

全部回答
  • 1楼网友:鱼芗
  • 2021-04-23 06:36

我用的是字符数组。。。其实方法都一样。。

#include <stdio.h> #include <string.h> #define MAXSIZE 100

int main() { char array[MAXSIZE]; char del; //要删除的元素 int len, i, j; printf( "请输入数据:"); gets( array ); printf( "请输入要删除的元素!!!:" ); scanf( "%c", &del ); len = strlen(array); for( i = 0; i < len; i++ ) { if( del == array[i] ) { for( j = i; j < len; j++ ) { array[j] = array[j+1]; } i--; } } i = 0; while( array[i] != '\0' ) { printf( "%c",array[i] ); i++; } printf( "\n" ); return 0; }

  • 2楼网友:轻雾山林
  • 2021-04-23 05:56

说的不是很清楚,数组定义的时候就删除?看来你对数组的操作还不是很清楚,应该是在数据写入数组的时候将其删除吧。你可以这样,如果数组不大,在写入数据的时候先遍历一遍数组看看数组中是否有该数据,如果有那么就不把数据写入数组,如果没有就接着最后一个元素写入数组就可以了。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯