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

2021-12-23 10:36:47 字數 5636 閱讀 7700

1樓:匿名使用者

為什麼用strcmp比較出來是不相等,難道你的a,b不是字串,而是分別有10個字元把陣列佔滿了,那樣的話strcmp肯定不能用的,strcmp只能針對字串.

2樓:匿名使用者

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

3樓:匿名使用者

陣列裡不一定存放的是字串,那可以自己寫一個判斷函式呀。就別用strcmp了

4樓:匿名使用者

因為沒有初始化,所以即使a[0]和b[0]相等,也不能說陣列a和b就相等

把a和b都初始化為同一個數,然後計算以後,用strcmp或者你真的僅僅要比較a[0]和b[0]就可以判斷是否相等的話,那麼直接比較下if(a[0]==b[0])

嚴格來說,使用任何未初始化的區域性變數都是很傻的做法

5樓:匿名使用者

用int i=strcmp(a,b)

i=0則相等

strcmp例子:

#include

#include

int main(void)

6樓:休保哲

for(int i=0; i < size; ++i)if(a[i]==b[i])...

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

7樓:匿名使用者

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

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

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

c++中怎樣判斷兩個字元型陣列元素相等?

8樓:狼道刀

直接用c++庫函式strcmp(char* a,char* b)就可以比較出兩字串是否相等,對於字元型陣列也是一樣的,只要分別帶入陣列地址就可以了。函式返回0 ,表示相等;大於0表示字串a大於字串b;反之小於則串a小於b。

而這裡的庫函式做的比較是一次比較字串中相同位置的單個字元的ascii得出的結果。你也可以自己用c++**實現這個比較,下面我隨便寫了一個函式來單個單個的比較,只判斷是否相等,返回1(true)為相等,返回0(false)為不相等。

具體**如下:

char a=;

char b=;

bool function(char a,char b)

}return 1;}

擴充套件資料

c++語言特點:

1、支援資料封裝和資料隱藏

在c++中,類是支援資料封裝的工具,物件則是資料封裝的實現。c++通過建立使用者定義類支援資料封裝和資料隱藏。

在物件導向的程式設計中,將資料和對該資料進行合法操作的函式封裝在一起作為一個類的定義。物件被說明為具有一個給定類的變數。每個給定類的物件包含這個類所規定的若干私有成員、公有成員及保護成員。

完好定義的類一旦建立,就可看成完全封裝的實體,可以作為一個整體單元使用。類的實際內部工作隱藏起來,使用完好定義的類的使用者不需要知道類是如何工作的,只要知道如何使用它即可。

2、支援繼承和重用

在c++現有類的基礎上可以宣告新型別,這就是繼承和重用的思想。通過繼承和重用可以更有效地組織程式結構,明確類間關係,並且充分利用已有的類來完成更復雜、深入的開發。新定義的類為子類,成為派生類。

它可以從父類那裡繼承所有非私有的屬性和方法,作為自己的成員。

3、支援多型性

採用多型性為每個類指定表現行為。多型性形成由父類和它們的子類組成的一個樹型結構。在這個樹中的每個子類可以接收一個或多個具有相同名字的訊息。

當一個訊息被這個樹中一個類的一個物件接收時,這個物件動態地決定給予子類物件的訊息的某種用法。

繼承性和多型性的組合,可以輕易地生成一系列雖然類似但獨一無二的物件。由於繼承性,這些物件共享許多相似的特徵。由於多型性,一個物件可有獨特的表現方式,而另一個物件有另一種表現方式。

9樓:匿名使用者

是陣列的長度相等還是陣列的內容長度相等,還是內容相等??

內容相等用strcmp()函式就可以比較瞭如:char a = "the",b[10] = "the";

strcmp(a,b);//比較兩字串是否相同;

內容長度相等用strlen()分別得出兩字串的長度,然後比較長度。

char a = "the",b[10] = "the";

strlen(a) == strlen(b);//比較兩字串長度是否相同;

陣列的長度可以用sizeof來得到陣列的長度,然後比較長度;

char a = "the",b[10] = "the";

(sizeof)a/(sizeof)char == (sizeof)b / (sizeof)char ;//比較兩字元陣列長度是否想偷

10樓:匿名使用者

有兩個辦法:一個使用for逐位元組去判斷:void comp(char *a,char *b) 另一個是直接使用strcmp相等返回0

11樓:匿名使用者

用strcmp函式可以一步到位,自己編就要每個都去迴圈了。。

12樓:匿名使用者

函式名: strcmp

功 能: 串比較

用 法: int strcmp(char *str1, char *str2);

看asic碼,str1>str2,返回值 > 0;兩串相等,返回0程式例:

#include

#include

int main(void)

13樓:

char a,b;

if(a == b) || a > b || a < b

比較時按照asic碼錶裡面的值來比較的

14樓:匿名使用者

char str1 = "abc";

char str2 = "abc";str1==str2

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

15樓:大野瘦子

可以使用庫函式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;

16樓:匿名使用者

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

17樓:

可以使用庫函式strcmp比較。

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

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

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

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

18樓:尚萌印蓮

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

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

0兩個字串相等

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

19樓:匿名使用者

程式例項如下:

#include

#include

void main (void);

void main(void)

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

str_1 is equal to str_2.

str_1 is not equal to str_3.

20樓:春天在這裡開花

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

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個字元開始的內容

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

c語言有個函式memcmp是用來進行記憶體比較的extern intmemcmp void buf1,void buf2,unsigned intcount if 0 memcmp id,id1,20 id1等於id2 先要明確運算子按優先順序不同分類,c程式設計 運算子可分為15種優先順序,從高到...

在c語言中如何將兩個數進行互換,在C語言中如何將兩個數進行互換

將兩個數進行互換的方法有兩種形式 1 藉助中間變數完成,此方法直觀,易理解,使用最多2 不需要中間變數,通過變數身的運算完成交換。方法1 int a 2,b 3,t t a 先將a儲存到臨時變數t中 a b 將b儲存到a中 b t 將臨時變數中的原a值儲存到b中printf a d b d n a,...

C語言中定義了個char陣列,有些不明白

出現這種情況的原因是隱藏的。char name 這一句裡將一個 0 賦值給name陣列,這時name陣列並沒有指定長度,但它是一個陣列,也就是一個指標,指標在機器上一般是佔用4個位元組的。所以在後來的scanf s name 語句裡,你的輸入格式是 s,而輸入的是 name,也就是取地址符號,這就是...