strcmp返回值布林型別的判斷

2022-02-05 11:38:35 字數 856 閱讀 1235

strcmp: 用於比較兩個字串,原型如下:

int strcmp ( char const *s1, char const *s2);

如果s1小於s2,strcmp函式返回乙個小於零的值。如果s1大於s2,函式返回乙個大於零的值。如果兩個字串相等,函式就返回零。

警告:初學者常常會編寫下面這樣的表示式

if ( strcmp (a, b))

他以為如果兩個字串相等,它的結果將是真。但是,這個結果將正好相反,因為在兩個字串相等的情況下返回值是零(假)。 把這個返回值當作布林值進行測試是一種壞風格,因為它具有三個截然不同的結果:小於、等於和大於。 所以更好的方法是把這個返回值與零進行比較。

當然我們在實際工作中也經常會碰到將其返回值與布林值進行判斷,我們來看下面這個例子:

char a;

……if ( !strcmp( a, "5"))

else

在這個例子中我們分析下:

如果a的值為5,則返回值為0,那麼判斷也就成為 if(!(0)) ,(0)取反後為1 ,1位true則判斷為 if( true )

如果a的值小於5,則返回乙個負數,而負數的取反是false; 大於5,則返回乙個正數,正數的取反也是false; 

因此上例中a 的值為5 則輸出 equally ; 不等於5都輸出 unequal 

我們可以做乙個小測試 -1 、 0 、 1三數分別取反,會得到 0、1、0 。

標準並沒有規定用於提示不相等的具體值。它只是說如果第乙個字串大於第二個字串就返回乙個大於零的值,如果第乙個字串小於第二個字串就返回乙個小於零的值。乙個常見的錯誤是一位返回值就是1和-1,分別代表大於和小於。這個假設並不總是成立。 (跟具體的編譯器有關)

**:

spring mvc返回值型別

spring mvc處理方法支援如下的返回方式 modelandview,model,modelmap,map,view,string,void。下面一一進行說明 返回的邏輯檢視名是 demo message 通過modelandview構造方法可以指定返回的頁面名稱,也可以通過setviewnam...

SpringMVC的返回值型別

spring mvc 支援如下的返回方式 modelandview model modelmap mapview string void modelandview 通過modelandview構造方法可以指定返回的頁面名稱,也可以通過setviewname 方法跳轉到指定的頁面 map在jsp頁面中...

toFixed 的返回值型別

今天在使用parsefloat 並且保留兩位小數的時候,最後檢視資料型別,結果發現為string,有點好奇,一般通過parsefloat 或者parseint 是轉為number型別,但是保留兩位小數,用到了確定浮點數的精度,使用tofixed 來實現的,用法如下 numberobject.tofi...