📜  C |字串|问题13(1)

📅  最后修改于: 2023-12-03 14:59:38.157000             🧑  作者: Mango

C语言字符串问题13

在C语言中,想要比较两个字符串,需要使用字符串函数strcmp()。但是,对于部分应用场景,我们其实只需要比较字符串的前几个字符,而不是整个字符串的内容。比如说,判断一个字符串是否以某个前缀开头。这时,我们可以使用另一个字符串函数strncmp()

函数原型
int strncmp(const char *str1, const char *str2, size_t n);
参数说明
  • str1 : 要进行比较的第一个字符串。
  • str2 : 要进行比较的第二个字符串。
  • n : 要比较的字符数。
返回值
  • 小于0 : str1 小于 str2。
  • 等于0 : str1 等于 str2。
  • 大于0 : str1 大于 str2。
代码示例

下面是一个字符串比较的示例程序:

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

int main()
{
    char str1[100] = "abcde";
    char str2[100] = "abcd";
    int result;

    result = strncmp(str1, str2, 4);
    
    if(result == 0)
    {
        printf("两个字符串相等!\n");
    }
    else
    {
        printf("两个字符串不相等!\n");
    }
    
    return 0;
}

这个程序会输出"两个字符串相等!",因为strncmp()只比较了前四个字符,可以看到str1str2的前四个字符是一样的。

总结

strncmp()函数是C语言字符串函数中的一个重要函数,可以用来比较两个字符串的前几个字符。在实际应用中,可以使用这个函数来判断一个字符串是否以某个前缀开头。当然,对于完整的字符串比较,还是需要使用strcmp()函数。