第五阶段—函数—几个特殊函数—字符串操作函数:编写函数mystrcmp

#include<stdio.h>
#include<assert.h>
#include<string.h>
#define N 50

// int my_strcmp(char *dest, char *src)
// {
    // assert((dest != NULL)&&(src != NULL));//断言:判断表达式一定为真,若为假,则终止程序    
    // int i = 0, ret = 0;
    // while(*dest && (*dest == *src))//保证两个数组不为空,找出两个数组第一个不同元素,所在的位置i
    // {
        // dest++;
        // src++;
    // }
    // if(*dest == *src)//若此时i位置的两个数组元素相同,说明两数组相同
    // {
        // return 0;
    // }else{
        // return (*dest > *src? 1: -1);//若此时i位置的两个数组元素不相同,则比较大小
    // }
    
// }

// int my_strcmp(char *dest, char *src)
// {
    // assert((dest != NULL)&&(src != NULL));//断言:判断表达式一定为真,若为假,则终止程序    
    // int i = 0, ret = 0;
    // while(*dest && (*dest == *src))//保证两个数组不为空,找出两个数组第一个不同元素,所在的位置i
    // {
        // dest++;
        // src++;
    // }    
    // return *dest - *src;    
// }

int my_strcmp(char *dest, char *src)
{
    assert((dest != NULL)&&(src != NULL));//断言:判断表达式一定为真,若为假,则终止程序    
    int i = 0, ret = 0;
    while(*dest && (*dest++ == *src++));//保证两个数组不为空,找出两个数组第一个不同元素,所在的位置i    
    return *dest - *src;//若此时i位置的两个数组元素相减,就可得出大小    
}
int main(int argc, const char *argv[])
{
    char buf[N] = {"abcdefgtyui"};//定义需要传给形参,给形参赋值的变量
    char buff[] = {"12345"};

    int i = 0;
    i = my_strcmp(buf, buff);
    
    printf("strcmp(buf, buff) = %d\n", i);
    i = strcmp(buf, buff);
    printf("strcmp(buf, buff) = %d\n", i);
    
    return 0;
}

 

posted @ 2021-10-05 23:42  major825  阅读(104)  评论(0)    收藏  举报