10

通常 strcmp 与两个参数一起使用 [例如 strcmp(str1,"garden")],如果两者相同,它将返回 0。

是否可以比较输入的一部分,比如输入的前五个字符?(例如,strcmp(str1,"garde",5)

#include <stdio.h>
#include<string.h>

int main(void) {

    char str1[] = "garden";

    if (strcmp(str1, "garden") == 0)
    {
        printf("1");
    }
    if (strcmp(str1, "garden", 6) == 0)
    {
        printf("2");
    }
    if (strcmp(str1, "garde", 5) == 0)
    {
        printf("3");
    }
    return 0;
}
4

2 回答 2

15

使用 strncmp:

if (strncmp(str, "test", 4) == 0) { printf("it matches!"); }

有关更多信息,请参见http://www.cplusplus.com/reference/cstring/strncmp/

于 2012-12-12T03:35:39.807 回答
3

你正在寻找strncmp().

请记住,C 不支持重载,因此同一函数的每个“变体”都有一个唯一的名称。

于 2012-12-12T03:35:23.807 回答