当前位置 : 主页 > 编程语言 > c语言 >

strcmp函数

来源:互联网 收集:自由互联 发布时间:2023-08-28
一、函数基本用法 定义: intstrcmp(constchar*str1,constchar*str2); 第一个参数为第一个字符串的地址; 第二个参数为第二个字符串的地址; 作用:比较两个字符串是否相等 •标准规定: •第

一、函数基本用法

定义:

int strcmp ( const char * str1, const char * str2);

第一个参数为第一个字符串的地址;

第二个参数为第二个字符串的地址;

作用:比较两个字符串是否相等

•标准规定:

•第一个字符串大于第二个字符串,则返回大于0的数字

•第一个字符串等于第二个字符串,则返回0

•第一个字符串小于第二个字符串,则返回小于0的数字

那么如何判断两个字符串?

例:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>

int main()
{
    char arr1[20] = { "zhangsan" };
    char arr2[20] = { "zhangsanfeng" };
    char arr3[20] = { "zhangsan" };
    int ret1 = strcmp(arr1, arr2);//字符串1小于字符串2,返回负值
    int ret2 = strcmp(arr1, arr3);//字符串1和字符串3相等,返回0
    printf("arr1和arr2:%d\n", ret1);
    printf("arr1和arr3:%d\n", ret2);

}

运行结果:

strcmp函数_C

所以,通过strcmp函数即可比较两个字符串是否相等。

2.代码模拟实现

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<assert.h>
int my_strcmp(const char* str1, const char* str2)
{
    assert(str1 && str2);
    while (*str1 == *str2)
    {
        if (*str1 == '\0')
            return 0;//相等
        str1++;
        str2++;
    }
    if (*str1 > *str2)
        return 1;//为正值即可
    else
        return -1;//为负值即可
}
int main()
{
    char arr1[20] = { "zhangsan" };
    char arr2[20] = { "zhangsanfeng" };
    char arr3[20] = { "zhangsan" };
    int ret1 = my_strcmp(arr1, arr2);//字符串1小于字符串2,返回负值
    int ret2 = my_strcmp(arr1, arr3);//字符串1和字符串3相等,返回0
    printf("arr1和arr2:%d\n", ret1);
    printf("arr1和arr3:%d\n", ret2);

}

运行结果:

strcmp函数_C_02


以上就是strcmp函数的基本用法,欢迎指正~

上一篇:Programming abstractions in C阅读笔记:p130-p131
下一篇:没有了
网友评论