prev up next   top/contents search

comp.lang.c FAQ 列表· 第 8.2 题

我正在检查一个字符串是否与特定值匹配。为什么这段代码不起作用?

	char *string;
	...
	if(string == "value") {
		/* string matches "value" */
		...
	}


C 语言中的字符串是以字符数组的形式表示的,C 语言从不(赋值、比较等)整体操作数组。[脚注]==上面的代码片段中的运算符会比较两个指针——指针变量string的值和指向字符串字面量"value"的指针——以查看它们是否相等,也就是说,它们是否指向同一个位置。它们很可能不是,所以比较永远不会成功。

要比较两个字符串,通常使用库函数strcmp:

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


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管