3 回答

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊
strcmp的實(shí)現(xiàn)是這樣的,對(duì)兩個(gè)字符串,先比較第一個(gè)字符,如果不相等,返回差值。如果相等,繼續(xù)比較下一個(gè)字符,直到有不相等或遇到‘\0’時(shí)結(jié)束。
現(xiàn)在你把數(shù)組a和b傳入,因?yàn)榍叭齻€(gè)字符都相等,會(huì)越界繼續(xù)比較的。
如果你想比較兩個(gè)字符串,字符串是要用‘\0’結(jié)束的。
如果你只想比較前n個(gè),可以使用strncmp,strncmp(a,b,3);

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊
你這是在比較字符數(shù)組了吧 不是在比較字符串了
char a[] = "abc";
char b[] = "abc";應(yīng)該這么定義
你之前定義的是
char a[]={'a','b','c'}; //char a[3] 是可以的 a[2] = 'c'
char b[]={'a','b','c'};// char a[4]也是可以的 a[3] = '\0'
不一樣的

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
你可以把字符串的初始化改成這樣:
char a[]="abc";
char b[]="abc";
那個(gè)getch();可以不要
- 3 回答
- 0 關(guān)注
- 738 瀏覽
添加回答
舉報(bào)