使用C中的strcmp()比较输入字符串的一部分

时间:2012-12-12 03:32:19

标签: c strcmp

通常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;
}

2 个答案:

答案 0 :(得分:11)

使用strncmp:

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

有关详细信息,请参阅http://www.cplusplus.com/reference/cstring/strncmp/

答案 1 :(得分:2)

您正在寻找strncmp()

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