c語言中判斷兩個陣列內容是否相同

2021-08-20 17:19:37 字數 5692 閱讀 5757

1樓:墨汁諾

c語言有個函式memcmp是用來進行記憶體比較的extern

intmemcmp(void

*buf1,

void

*buf2,

unsigned

intcount);

if(0==memcmp(id,id1,20))//id1等於id2

先要明確運算子按優先順序不同分類,《c程式設計》運算子可分為15種優先順序,從高到低,優先順序為1 ~ 15,除第2.13級和第14級為從右至左結合外,其它都是從左至右結合,它決定同級運算子的運算順序。

產生**

在c語言中, 陣列屬於構造資料型別。一個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列、字元陣列、指標陣列、結構陣列等各種類別。

關於可變長陣列(vla)的問題:原來的c89標準中是不允許可變長陣列出現的,但是在c99標準中,加入了對vla的支援,但是支援的編譯器不多,而且由於棧溢位的安全問題,沒有太多的人敢用這個可變長陣列,所以在c11標準中又把它規定為可選實現的功能了。

2樓:

兩個陣列若長度不等,則兩陣列不等;若長度相等,則可用庫函式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)

3樓:

使用'/0'啊,即先用長度函式(不好意思我不記得拼寫了)判斷兩者長度,長度相同時,求出長度n,此處n=1。然後a[1]='/0',b[1]='/0'(意思即是a[n]=b[n]='/0'),然後計算時就會忽略後面的不定空間的資料了。

4樓:

使用字串比較函式strcmp:

原型:extern int strcmp(const char *s1,const char * s2);

用法:#include 功能:比較字串s1和s2。

說明: 當s1s2時,返回值》0

引入標頭檔案string.h然後再用if (strcmp(id, id1) == 0)做判斷即可。

5樓:匿名使用者

一個變數指標a指向id1, 一個變數指標b指向id2,result =0;

when(i=0;i++ i,i<20)

else i++;}

c語言怎樣比較兩個int型陣列中的數是不是一模一樣? 5

6樓:

一個個比較,差不多這樣

int cmp()}

7樓:匿名使用者

函式原型

int memcmp(const void *buf1, const void *buf2, unsigned int count);

功能:比較記憶體區域buf1和buf2的前count個位元組。

所需標頭檔案

#include 或#include

返回值當buf1buf2時,返回值》0

假設陣列宣告

int a[20];

int b[20];

// 中間為陣列賦值過

if (!memcmp(a,b,sizeof(int)*20))

8樓:匿名使用者

/* i 代表1 ~ 9 數字,可以用你想要的陣列代替 *//*a[j] 你要驗證是否存在1 ~ 9的陣列*/bool bright = true;

int a[9] = ;

int b[9] = ;

for(int i=0;i<9;i++)

if(j == 8)}}

if(bright ) cout << "相同" <

else cout << "不相同" <

9樓:匿名使用者

簡單的加個迴圈判斷就可以了

c語言中如何判斷兩個字串相等

10樓:大野瘦子

可以使用庫函式strcmp判斷,具體如下:

strcmp是c語言比較字串的庫函式,形式為int strcmp(char *a, char *b);

該函式會對a和b的每個字元,按照ascii碼值比較,如果二者完全相同返回0;如果a的ascii碼值先出現較大者,會返回1;否則返回-1。

所以,要判斷字串相等,可以使用。

關於上述strcmp()函式比較字串的例子

#include

#include

int main(void)

char str_1 = "abc";

char str_2 = "abc";

char str_3 = "abc";

if (strcmp(str_1, str_2) == 0)

printf("str_1 is equal to str_2. \n");

else

printf("str_1 is not equal to str_2. \n");

if (strcmp(str_1, str_3) == 0)

printf("str_1 is equal to str_3.\n");

else

printf("str_1 is not equal to str_3.\n");

return 0;

11樓:匿名使用者

c語言中如何判斷兩個字串相等使用strcmp函式。

strcmp原型:int strcmp( char *s1,char * s2)

功能比較s1和s2的大小。

當s1當s1=s2時,返回值= 0

當s1>s2時,返回正數

#include

#include

int main()

{char s1[20],s2[20];

gets(s1);

gets(s2);

if(strcmp(s1,s2)>0) printf("s1>s2\n");

else if(strcmp(s1,s2)==0) printf("s1>s2\n");

else printf("s1

12樓:

可以使用庫函式strcmp比較。

strcmp是c語言比較字串的庫函式。形式為int strcmp(char *a, char *b);

該函式會對a和b的每個字元,按照ascii碼值比較,如果二者完全相同返回0;如果a的ascii碼值先出現較大者,會返回1;否則返回-1.

所以,要判斷字串相等,可以使用

if(strcmp(string1, string2) == 0)如果返回為0,則相等,否則不等。

13樓:尚萌印蓮

c語言提供了幾個標準庫函式,可以比較兩個字串是否相同。strcmp()函式有兩個引數,即要比較的兩個字串。strcmp()函式對兩個字串進行大小寫敏感的(case-sensitive)和字典式的(lexicographic)比較,並返回下列值之一:

值意<0第一個字串小於第二個字串

0兩個字串相等

·>0第一個字串大於第二個字串

14樓:匿名使用者

程式例項如下:

#include

#include

void main (void);

void main(void)

上例的列印輸出如下所示:

str_1 is equal to str_2.

str_1 is not equal to str_3.

15樓:春天在這裡開花

比較字元可以直接使用==比較操作符,如:

char c1='a',c2='b';

if(c1==c2) printf("%c is same as %c.",c1,c2);

else printf("%c is different to %c",c1,c2);

若是字串,則需要使用字串函式了,strcmp

char s1="abc",s2="xyz";

if(strcmp(s1,s2)==0) printf("%s is same as %s.",s1,s2);

也可以忽略大小寫來比較,使用函式stricmp 中間的i意思是ignore case sensitive

還可以指定長度比較,strncmp,如:

char s1="abc",s2="abcdefg";

if(strncmp(s1,s2,3)==0) printf("first 3 characters are same");

若不是從開頭位置開始比較,如:

char s1="abc",s2="xyzabc"

if(strncmp(s1,&s2[3],3)==0) 就是比較s1和s2的第3個字元開始的內容

16樓:

#include

char s1[10],s2[10];

...if(strcmp(s1,s2)==0)printf("兩字串相等\n");

string.h 標頭檔案中就有比較函式,可以用來比較是否相等

17樓:阿新

#define _crt_secure_no_warnings#include

#include

#include

#include

#include

int main()

n++;

}if (n == strlen(str1))}system("pause");

return exit_success;}

18樓:世界第一卓吹

說那多如果兩邊對稱的,用strcmp也不行呀,看好需求,一堆bug

19樓:匿名使用者

迴圈#define long 20

char a[long]=

char b[long]=

for(int i = 0;i < long;++i)if(i == 20)

printf("相等\n");

c語言中如何判斷兩個陣列內容是否相同?

20樓:匿名使用者

c語言有個函式 memcmp 是用來進行記憶體比較的

extern int memcmp(void *buf1, void *buf2, unsigned int count);

if(0==memcmp(id,id1,20)) //id1等於id2

c語言中如何判斷兩個char型的陣列是否相同

為什麼用strcmp比較出來是不相等,難道你的a,b不是字串,而是分別有10個字元把陣列佔滿了,那樣的話strcmp肯定不能用的,strcmp只能針對字串.使用 0 啊,即先用長度函式 不好意思我不記得拼寫了 判斷兩者長度,長度相同時,求出長度n,此處n 1。然後a 1 0 b 1 0 意思即是a ...

c語言如何寫才能判斷兩個陣列相等

include intmain inti 0 intj 0 intarr1 intarr2 for i 0 ifor j 0 jif arr1 i arr2 j printf 存在相同元素 break break return0 擴充套件資料c 比較兩個陣列是否相等 constintsize 5 i...

c語言陣列刪除問題,C語言中刪除一個陣列元素

可是那要是刪除陣列最後一個元素要怎麼弄?忽略最後一個元素,陣列長度變小一個就可以了,不用動這個資料。include void del num int a int n,int cnt else p a i cnt flag int main int n cnt cnt 8 8個元素 scanf d n...