關於在判斷條件中使用strlen 函式的問題

2021-10-04 21:26:08 字數 622 閱讀 6678

在寫kmp演算法時,我寫了個這樣的條件判斷迴圈

while

(i<

strlen

(a)&&j<

strlen

(s))

//這是錯的!!!

然後出現了乙個百思不得其解的問題。當j=-1時,直接跳出迴圈。查了半天才知道是函式問題。

現在我們來看一下strlen函式原型。

extern

unsigned

intstrlen

(char

*s);

在visual c++

6.0或dev-c++中,原型為

size_t strlen

(const

char

*string)

;其中size_t實際上是unsigned

int

計算給定字串的(unsigned int型)長度,就是這一點!!!

它的返回值是乙個 unsigned int 型別。j在此建議使用strlen函式的值作為條件迴圈時,應先賦值給int型別,或者使用c++中的string。

謹以此博文告誡自己!!!

在條件判斷中使用 all any

all 和any 兩個函式非常適合在條件判斷中使用。這兩個函式接受乙個可迭代物件,返回乙個布林值,其中 假如我們有下面這段 def all numbers gt 10 numbers 僅當序列中所有數字大於 10 時,返回 true if not numbers return false for n...

React中使用if else 條件判斷

在react中用jsx渲染dom的時候經常會遇到if條件判斷,然而在jsx中竟是不允許if條件判斷的。以下有幾種判斷方式,可以根據自己的應用場景,挑選適合的。方案一 class hellomessage extends react.component else return 方案二 class he...

sql中使用if多條件判斷

1 以一表為例 bill 單據表 id billno status amount create date 1 gr0001 gr 155 2009 09 09 2 do0001 do 150 2009 09 09 2 so0001 so 153 2009 09 09 說明 status gr表示 進...