如何比较“if”语句中的string?

我想testing一下,看看“char”types的variables是否可以与像“cheese”这样的常规string进行比较,比较如下:

#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中的两个string呢?

你正在从string.h寻找函数strcmpstrncmp

由于string只是数组,所以你需要比较每个字符,所以这个函数会为你做:

 if (strcmp(favoriteDairyProduct, "cheese") == 0) { printf("You like cheese too!"); } else { printf("I like cheese more."); } 

进一步阅读: strcmp在cplusplus.com

 if(strcmp(aString, bString) == 0){ //strings are the same } 

一帆风顺

看看函数strcmp和strncmp 。

您不能使用==运算符来比较字符数组。 你必须使用string比较函数。 看看Strings(c-faq) 。

标准库的strcmp函数比较两个string,如果相同,则返回0;如果第一个string按字母顺序“小于”第二个string,则返回负数;如果第一个string为“更大”,则返回正数。

 if(!strcmp(favoriteDairyProduct, "cheese")) { printf("You like cheese too!"); } else { printf("I like cheese more."); }