c语言中strcmp函数,函数原型和函数头文件

1、函数原型。

复制代码
#include <stdio.h>

int strcmp(const char *s1, const char *s2) // 函数返回int型,形参为两个指向char型的指针 
{
    while(*s1 == *s2) //当元素相等时 
    {
        if(*s1 == '\0') // 判断*s1是否为null,*s1是null意味着两个字符串相等(说明一直到字符串的末尾都相等) 
            return 0;
        s1++;  // 指针依次后移 
        s2++;
    }
    
    return (unsigned char)*s1 - (unsigned char)*s2; //如果*s1 != *s2,  则用指针指向的*s1的当前字符减去指针指向*s2的当前字符。 
}

int main(void)
{
    char str1[128] = "abcd";
    char str2[128];
    printf("str2: "); scanf("%s", str2);
    
    int tmp = strcmp(str1, str2);  //函数的实参为两个字符串数组名称,相当于指向数组的首个元素的指针,(函数间数组的传递是以数组的第一个元素的指针进行的。) 
    
    if(tmp > 0)
        puts("str1 is greater than str2.");
    else if(tmp == 0)
        puts("str1 is equal to str2.");
    else
        puts("str1 is less than str2.");
    
    return 0;
}
复制代码

 

 

2、加载strcmp的头文件,可以直接调用函数

复制代码
#include <stdio.h>
#include <string.h> // head file? It can run without loading!!!!!


int main(void)
{
    char str1[128] = "abcd";
    char str2[128];
    printf("str2: "); scanf("%s", str2);
    
    int tmp = strcmp(str1, str2);
    
    if(tmp > 0)
        puts("str1 is greater than str2.");
    else if(tmp == 0)
        puts("str1 is equal to str2.");
    else
        puts("str1 is less than str2.");
    
    return 0;
}
复制代码

 

posted @   小鲨鱼2018  阅读(1847)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2020-06-01 linux系统删除行首空格命令的比较
点击右上角即可分享
微信分享提示