9.2 我在檢查一個字符串是否跟某個值匹配。 為什麼這樣不行? char *string; ... if(string == "value") { /* string matches "value" */ ... }

C 中的字符串用字符的數組表示, 而 C 語言從來不會把數組作為一個 整體操作 (賦值, 比較等)。 上面代碼段中的 == 操作符比較的是兩個 指針 --- 指針變量 string 的值和字符串常數 ``value" 的指針值  --- 看它們是否相等, 也就是說, 看它們是否指向同一個位置。 它們可能並不相等, 所以比較決不會成功。

要比較兩個字符串, 一般使用庫函數 strcmp():

	if(strcmp(string, "value") == 0) {
		/* string matches "value" */
	}

翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)