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 為什麼用strcmp比較出來是不相等,難道你的a,b不是字串,而是分別有10個字元把陣列佔滿了,那樣的話strcmp肯定不能用的,strcmp只能針對字串.使用 0 啊,即先用長度函式 不好意思我不記得拼寫了 判斷兩者長度,長度相同時,求出長度n,此處n 1。然後a 1 0 b 1 0 意思即是a ... 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... 可是那要是刪除陣列最後一個元素要怎麼弄?忽略最後一個元素,陣列長度變小一個就可以了,不用動這個資料。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...c語言中如何判斷兩個char型的陣列是否相同
c語言如何寫才能判斷兩個陣列相等
c語言陣列刪除問題,C語言中刪除一個陣列元素