如何使用';int';,但在C语言中是字符串而不是数据类型?

如何使用';int';,但在C语言中是字符串而不是数据类型?,c,string,C,String,我正在检查输入,需要一种与实际单词“int”进行比较的方法 例如: char t[10] = "int"; if (t == 'int'){ printf("We have an integr"); } 我不确定这是否可能,仍然在学习C的诀窍。谢谢你的帮助 您可以使用来比较文本。请注意,它在匹配时返回零: if (strcmp(t, "int") == 0) { printf("We have an integer\n"); } 声明chart[]=“int”包括空终止符,用

我正在检查输入,需要一种与实际单词“int”进行比较的方法

例如:

char t[10] = "int";
if (t == 'int'){
   printf("We have an integr");
}
我不确定这是否可能,仍然在学习C的诀窍。谢谢你的帮助

您可以使用来比较文本。请注意,它在匹配时返回零:

if (strcmp(t, "int") == 0) {
     printf("We have an integer\n");
}

声明
chart[]=“int”
包括空终止符,用于与
strcmp()
一起使用,同时在提供您要查找的
int
的字符串版本时不使用不必要的内存

注意:使用
=
运算符将无法进行字符串比较,除非您每次检查一个char元素。(参见下面的第二个示例)

使用
==

if((t[0]=='i')&&(t[1]=='n')&&(t[2]=='t')&&(t[3]=='\0')){...  
“int”是一个字符串文本。它与
int
类型或所述类型的任何值无关。如果将
“foobar”
与原始代码一起使用,则存在完全相同的问题。字符串就是字符串

使用
'int'
(或
'foobar'
)也是错误的,因为它们是[令人困惑的]字符文字(类型
char
),而不是字符串文字(类型
char*
)。编译器应该生成一个或两个警告-启用并读取所有警告!-即使它被编译了


最后,请参阅其他有关如何正确比较C中字符串的答案,这些答案解释了
=
方法不起作用的原因。

请在本网站发布之前多花点时间自学,或者至少花点时间研究“C中的字符串比较”也不要将字符串与
=
进行比较。您可能应该阅读更多教程。@TomSwifty,使用双引号也不起作用。您至少应该在谷歌上搜索过如何比较C中的字符串
if((t[0]=='i')&&(t[1]=='n')&&(t[2]=='t')&&(t[3]=='\0')){...