用C语言如何删除数组中的重复元素
- 提问者网友:贪了杯
- 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
说的不是很清楚,数组定义的时候就删除?看来你对数组的操作还不是很清楚,应该是在数据写入数组的时候将其删除吧。你可以这样,如果数组不大,在写入数据的时候先遍历一遍数组看看数组中是否有该数据,如果有那么就不把数据写入数组,如果没有就接着最后一个元素写入数组就可以了。