急!!! C语言中判断两个数组内容是否相同!给个办法!
例如定义了一个 char ID[20]={123456789};
又输入了一个char ID1[20];scanf("%s",ID1);
怎么判断 ID与ID1的内容相等呢?
谢谢大家了!!!
C语言中判断两个数组内容是否相同!
答案:5 悬赏:40 手机版
解决时间 2021-12-20 02:40
- 提问者网友:战皆罪
- 2021-12-19 20:55
最佳答案
- 五星知识达人网友:躲不过心动
- 2022-01-05 17:27
两个数组若长度不等,则两数组不等;若长度相等,则可用库函数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;
}
//#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;
}
全部回答
- 1楼网友:空山清雨
- 2022-01-05 20:40
一个变量指针A指向ID1, 一个变量指针B指向id2,
result =0;
when(i=0;i++ i,i<20)
{ if ([A] ==[B])
{result =1;
break;}
else i++;
}
- 2楼网友:你哪知我潦倒为你
- 2022-01-05 19:56
使用'/0'啊,即先用长度函数(不好意思我不记得拼写了)判断两者长度,长度相同时,求出长度n,此处n=1。然后a[1]='/0',b[1]='/0'(意思即是a[n]=b[n]='/0'),然后计算时就会忽略后面的不定空间的数据了。
- 3楼网友:梦中风几里
- 2022-01-05 18:31
使用字符串比较函数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)做判断即可。
- 4楼网友:过活
- 2022-01-05 18:08
C语言有个函数 memcmp 是用来进行内存比较的
extern int memcmp(void *buf1, void *buf2, unsigned int count);
if(0==memcmp(ID,ID1,20)) //ID1等于ID2
{
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯