在C语言中使用strcmp()函数比较输入字符串的一部分。

12

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

3
你需要使用strncmp函数,它可以在C++中比较两个字符串的前n个字符。具体信息请参考http://www.cplusplus.com/reference/cstring/strncmp/。 - goji
2个回答

16

嘿,特洛伊,谢谢你的回复。它能用三个参数吗?因为我得到了这个错误:prog.c:10:29: error: macro "strcmp" passed 3 arguments, but takes just 2。 - user1872384

3
您正在寻找的是 strncmp()
请记住,C语言不支持函数重载,因此每个相同函数的“变体”都有唯一的名称。

嗨,Crozin,谢谢。由于你们两个的回答时间差不多,我应该批准哪个答案呢,哈哈... - user1872384

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接