C语言中判断两个数组内容是否相同!

急!!!C语言中判断两个数组内容是否相同!给个办法!例如定义了一个charID[20]={123456789};又输入了一个charID1[20];scanf("%s",... 急!!! C语言中判断两个数组内容是否相同!给个办法!
例如定义了一个 char ID[20]={123456789};
又输入了一个char ID1[20];scanf("%s",ID1);
怎么判断 ID与ID1的内容相等呢?
谢谢大家了!!!
展开
 我来答
帐号已注销
2021-06-22 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:168万
展开全部

C语言有个函数

memcmp是用来进行内存比较的

extern

int

memcmp(void

*buf1,

void

*buf2,

unsigned

int

count);

if(0==memcmp(ID,ID1,20))

//ID1等于ID2

{

}

先要明确运算符按优先级不同分类,《C程序设计》运算符可分为15种优先级,从高到低,优先级为1 ~ 15,除第2.13级和第14级为从右至左结合外,其它都是从左至右结合,它决定同级运算符的运算顺序。

产生来源

在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。

关于可变长数组(VLA)的问题:原来的C89标准中是不允许可变长数组出现的,但是在C99标准中,加入了对VLA的支持,但是支持的编译器不多,而且由于栈溢出的安全问题,没有太多的人敢用这个可变长数组,所以在C11标准中又把它规定为可选实现的功能了。

以上内容参考:百度百科-数组

White_MouseYBZ
推荐于2017-10-14 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6706万
展开全部

两个数组若长度不等,则两数组不等;若长度相等,则可用库函数memcmp(a,b,n);判断(其中a、b是两个数组指针,n是长度),返回0则a与b相等,否则不等。若是两个字符串则无论二者是否等长,都可直接调用库函数strcmp就可解决。该函数原型是int strcmp(const char *a,const char *b);,用两个字符串实参指针调用后返回1则表示a字符串大于b字符串,若返回-1则是b字符串>a字符串,返回0则表示两个字符串相等。所以只要用if语句判断一下,返回值不为0则二字符串不相等,为0则相等。使用以上两函数都得包含头文件string.h,下面提供两个字符串比较代码作参考:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "string.h"
int main(void){
    char a[]="The quick brown fox jumps over a lazy dog.";
    char b[]="The moon, the sun and the star...",t;
    if((t=strcmp(a,b))==0)
        printf("a == b\n");
    else if(t<0)
        printf("a < b\n");
    else printf("a > b\n");
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a6eb415
2010-12-10 · TA获得超过787个赞
知道答主
回答量:507
采纳率:33%
帮助的人:248万
展开全部
使用'/0'啊,即先用长度函数(不好意思我不记得拼写了)判断两者长度,长度相同时,求出长度n,此处n=1。然后a[1]='/0',b[1]='/0'(意思即是a[n]=b[n]='/0'),然后计算时就会忽略后面的不定空间的数据了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5a455d7
2010-12-10 · TA获得超过144个赞
知道答主
回答量:28
采纳率:0%
帮助的人:34.1万
展开全部
使用字符串比较函数strcmp:
原型:extern int strcmp(const char *s1,const char * s2);
用法:#include <string.h> 功能:比较字符串s1和s2。
说明: 当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
引入头文件string.h然后再用if (strcmp(ID, ID1) == 0)做判断即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangtk1982
推荐于2018-03-20 · TA获得超过3742个赞
知道大有可为答主
回答量:3206
采纳率:100%
帮助的人:1461万
展开全部
C语言有个函数 memcmp 是用来进行内存比较的
extern int memcmp(void *buf1, void *buf2, unsigned int count);

if(0==memcmp(ID,ID1,20)) //ID1等于ID2
{
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式