C语言问题求助!!!路过的看下辣

2019-07-21 06:55发布

现在我想完成一个函数:将一串数据传入函数中,定义一个数组,如果该数据不存在数组中,则将其加进数组,如果数组中有这个数据,则跳过。
传入的数据是 u8*str形式的

类似于这样:

定义一个数组---->
void DataCompare(u8*str)
{
      判断传进来的数据是否在数组中,如果在的话就跳过,如果不在数组中则添加进数组中
}

这个判断的要用到算法吗???
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
warship
1楼-- · 2019-07-21 07:30
ZDawn 发表于 2018-12-10 17:58
我也有疑问,假如有一个全局变量数组,数组大小可以为无限大,初始化时数组各元素均为0,且已经写入 ...

首先, 全局变量数组不可能定义为无限大, 这是要占内存的, 超出硬件范围就无法编译通过或生成代码.
再者,你说的这种情况很简单,根本不需要多大的数组空间, 以1个字节为单位比较, 最多只有256种可能的数值, 所以定义一个大小为256字节的数组就行了.  在这种情况下,即使轮询比较,最大循环次数也就255次而已, 所以根本不需要设计特别的算法.   况且, 一旦256个元素占满后, 再来数据都不用轮询, 肯定已经存在在数组了.
ZDawn
2楼-- · 2019-07-21 08:33
本帖最后由 ZDawn 于 2018-12-8 16:20 编辑

传少量数据的话,我感觉一个一个去循环判断也没差多少。
但是传大量数据的话就得看情况了。
鲨鱼辣椒
3楼-- · 2019-07-21 09:11
ZDawn 发表于 2018-12-8 16:17
传少量数据的话,我感觉一个一个去循环判断也没差多少。
但是传大量数据的话就得看情况了。

我也是这样想的,要用算法的话,我是不知道怎么写了。。算法不是很懂
1084036180
4楼-- · 2019-07-21 11:20
unsigned int a[]={1,2};

void DataCompare(u8 *str )
{

    for()
}
1084036180
5楼-- · 2019-07-21 12:46
 精彩回答 2  元偷偷看……
1084036180
6楼-- · 2019-07-21 14:06
本帖最后由 1084036180 于 2018-12-8 20:44 编辑


unsigned int a[]={1,2};

void DataCompare(u8 *str )
{
    int i,s=0;


    for(i=0;i=<2;i++)
   {

if(a=*str)
s++;
str++;

   }

if(s==2)
则不传入数组;
else
则传入数组;

}

笔记本,不好输入。理解了我的意思,就能写出来

一周热门 更多>