在C語言中,因為字串沒有被封裝成物件,所以直接用==、!=比較。C語言提供了一個用於字串比較的函式型別strcmp。
注意,字串和字元完全不同,因為不同的編譯器實現問題,返回值的情況也有所變化。
strncat()函式,用於兩個字串的拼接。(1)函式原型
int strcmp(const char *_Str1,const char *_Str2);
(2)標頭檔案
string.h
(3)功能
比較const char *_Str1,const char *_Str2所指的字串內容,並根據第一個遇到的不相等字元ASCII值差確定返回值。相等:0_Str大於_Str2:1_Str小於_Str2:-1
(4)基礎例項程式碼
printf("%d\n",strcmp("a","a")); printf("%d\n",strcmp("z","a")); printf("%d\n",strcmp("a","z"));
(5)輸出情況
(6)基礎例項程式碼2:
printf("%d\n",strcmp("aa","az")); printf("%d\n",strcmp("az","aa"));
(7)輸出情況2:
(8)問題1:字元char可以比較嗎?回答:不可以,函式要求輸入的是一個字元陣列的首地址char*。而不是一個字元型別char。本質上,第一個是地址,第二個是一個整數型別(-128~127)
(9)問題2:返回值1,-1的取值是如何進行的回答:根據兩個字元陣列最先出現的,相同下標的不同字元對應的ASICC碼,做減法。
const char *_Str1-const char *_Str2
(10)問題3:返回值可以為32、-45、111嗎?回答:可以,有的編譯器這個函式的實現,是根據ASICC碼的差值。
最新評論