通常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;
}
答案 0 :(得分:11)
使用strncmp:
if (strncmp(str, "test", 4) == 0) { printf("it matches!"); }
有关详细信息,请参阅http://www.cplusplus.com/reference/cstring/strncmp/。
答案 1 :(得分:2)
您正在寻找strncmp()
。
请记住,C不支持重载,因此同一函数的每个“变体”都有一个唯一的名称。