我想测试并查看“char”类型的变量是否可以与常规字符串(如“cheese”)进行比较,以进行比较,如:
#include <stdio.h>
int main()
{
char favoriteDairyProduct[30];
scanf("%s",favoriteDairyProduct);
if(favoriteDairyProduct == "cheese")
{
printf("You like cheese too!");
}
else
{
printf("I like cheese more.");
}
return 0;
}
(我真正想做的事情比这要长得多,但这是我坚持的主要部分。) 那么如何比较C中的两个字符串?
答案 0 :(得分:24)
您正在寻找strcmp
中的strncmp
或string.h
功能。
由于字符串只是数组,因此您需要比较每个字符,因此该函数将为您执行此操作:
if (strcmp(favoriteDairyProduct, "cheese") == 0)
{
printf("You like cheese too!");
}
else
{
printf("I like cheese more.");
}
进一步阅读:strcmp at cplusplus.com
答案 1 :(得分:4)
答案 2 :(得分:4)
if(strcmp(aString, bString) == 0){
//strings are the same
}
一帆风顺
答案 3 :(得分:3)
您无法使用==
运算符比较字符数组。您必须使用字符串比较功能。看看Strings (c-faq)。
标准库的
strcmp
函数比较两个字符串,如果它们相同则返回0,如果第一个字符串按字母顺序“小于”第二个字符串则返回负数,如果第一个字符串则返回正数是“更大。”
答案 4 :(得分:1)
if(!strcmp(favoriteDairyProduct, "cheese"))
{
printf("You like cheese too!");
}
else
{
printf("I like cheese more.");
}