關於char比較的問題,關於 char 比較的問題

時間 2022-07-12 10:10:02

1樓:匿名使用者

應該跟編譯器和系統有關吧。我使用xp,vs2005編譯之後得到的是「!=」

********************

tamadexiaot 根本是打胡亂說,都沒有好好看**。

至於字串比較呢,應該使用strcmp這些函式,而不是使用兩個指標的等於。你的理解應該是對的,應該輸出"!=",但是偶認為確實跟編譯器有關。

我的就輸出"!="。兩個指標的話應該看作是兩個不同地址,應該是一個整數,指向不同的位置,數值是應該不同的。

2樓:匿名使用者

這個基於編譯器的實現,不過個人電腦作業系統上大多數的c++編譯器能夠優化字串的分配,即相同字串複用。具體可以自己寫程式驗證下char*,const char*,string三種型別是否是這樣。不過建議如果是作為練習題,最好自己寫個程式比較字串,實現一個與編譯器無關的版本,或者使用標準庫的string相關方法,因為const char*,char*是不推薦使用的。

下面是我實現的一個版本。

bool bcompare(const char *s1,const char* s2)

else

return false;}}}

3樓:匿名使用者

字串不能這樣直接比較。

4樓:匿名使用者

你的迴圈結尾沒有讓兩個指標自加1,

C 關於char陣列的問題,關於C char型別陣列長度的問題

可為什麼下標引用超出定義沒有錯誤 因為宣告char陣列的時候,b只是被宣告為指向char陣列第一個地址的指標。用操作符取資料的時候,編譯器看成是首地址向後偏移 char型別的長度 序號 超過了界限之後,至於後邊取到什麼意外資料就不一定了。所以一般需要使用char陣列儲存一個長度為n的字串的時候都宣告...

判斷char型變數ch是否為大寫字母的正確表示式是

判斷char型變數ch是否為大寫字母的c語言表示式是ch a ch z char用於c或c 中定義字元型變數,取值是字元常量,只佔一個位元組。系統在表示一個char型變數時,是將變數的ascii碼存入記憶體。取值範圍為 128 127。所以可以直接用大寫字母對應的ascii碼進行判斷。即判斷char...

關於C語言迴圈比較的問題

while fscanf fc,s fwj eof if strcmp a2,fwj 0 語句1elseif a8只要加一個else就行,語句1和語句2就會選擇執行。再幫你多加了幾對括號,這可能是一個形式程式,並不是完整程式。你這麼寫 肯定是順序執行 你所謂的2 語句 在 while的迴圈語句中 肯...