如何比较“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
寻找函数strcmp
或strncmp
。
由于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."); }