如果我的字符串input
爲1234567890
,我做到以下幾點:如果第二個參數是「0」,C++中的strcmp是否檢查字符串中的每個值?
(strcmp(input,"0"))
意志回報1
如果在1234567890
我的字符數組0
和0,如果有沒有?
我知道我可以測試這個,我做了,答案是肯定的,但我不知道爲什麼,我無法在strcmp上找到絕對的細節。
如果我的字符串input
爲1234567890
,我做到以下幾點:如果第二個參數是「0」,C++中的strcmp是否檢查字符串中的每個值?
(strcmp(input,"0"))
意志回報1
如果在1234567890
我的字符數組0
和0,如果有沒有?
我知道我可以測試這個,我做了,答案是肯定的,但我不知道爲什麼,我無法在strcmp上找到絕對的細節。
第strcmp
如果兩個字符串相同則返回0,否則返回非0。 看起來你甚至沒有打擾谷歌!
不,它比較兩個字符串。
strcmp()
僅當兩個字符串相同時才返回0。否則,返回值說明有關第一個不匹配的字符。
就你而言,這與'1'和'0'之間的比較有關。它沒有區別,其他字符串在最後有一個'0'。
strcmp()
通常會檢查從第一個到最後一個的所有字符,或直到兩個字符串中出現不匹配。
strcmp()
的確切內部實現,如果您詢問的話,在語言標準中沒有指定。從理論上講,它可以找到兩個字符串的長度,如果它們相等,則比較使用大於char
的單位的字符串,甚至做相反的處理。
strcmp()
比較字符串,而不是搜索另一個。如果字符串相同,它將返回0。否則,它將返回正值或負值,表示第一個不匹配字符(字符值被視爲無符號值)之間差異的符號。
是否strcmp的在C++中的字符串檢查每一個值如果第二 參數爲「0」
不,它不需要,strcmp()
是一個字符串比較功能用來檢查是否一個字符串等於另一個。如果是,則返回0
,如果一個字符串通常大於另一個字符串,則返回1
,否則返回-1
。
要檢查它是否存在,我建議你爲此編寫自己的函數。
//return 1 if if the character exists, 0 otherwise
int DoesCharExist(const char *pData, char character)
{
char *data = pData;
while(*data++){
if(*data == character) return 1;
}
return 0;
}
'strcmp'是比較函數,而不是搜索函數。也許看看手冊頁(也可以在線,例如http://linux.die.net/man/3/strcmp) – jogojapan 2013-02-26 02:05:14
我認爲你對'strcmp()'和'strchr()'很迷惑。否:只有當字符串相同(內容和寬度)時,strcmp()纔會返回「0」。否則,返回小於-1的「-1」或大於1的返回值。 – paulsm4 2013-02-26 02:05:21
*我知道我可以測試這個,我做了,答案是肯定的*真的嗎?你可能想重新運行測試.. – 2013-02-26 04:09:30