C语言面试高频考点

本文介绍了如何使用C语言实现strlen、strcpy、strcat和strcmp四个字符串处理函数的封装,展示了基本的字符数组操作技巧。
摘要由CSDN通过智能技术生成

1. 封装函数实现strlen功能


#include <stdio.h>

size_t MyStrlen(const char *pstr)
{
    size_t cnt = 0;

    while (*pstr++ != '\0')
    {
        ++cnt;
    }

    return cnt;
}


int main(void)
{
    char str[256] = {0};
    size_t len = 0;

    gets(str);

    len = MyStrlen(str);
    printf("数组长度为:%ld\n", len);

    return 0;
}

2. 封装函数实现strcpy功能

#include <stdio.h>

char *MyStrcpy(char *str_1, const char *str_2)
{
    char *str = str_1; 

    while (*str_2 != '\0')
    {
        *str_1 = *str_2;
        str_1++;
        str_2++;
    }

    *str_1 = '\0';

    return str;
}

int main(void)
{
    char str_1[30] = {0};
    char str_2[30] = {0};

    gets(str_2);

    MyStrcpy(str_1, str_2);

    puts(str_1);

    return 0;
}

3. 封装函数实现strcat功能

#include <stdio.h>

char *MyStrcat(char *str_1, const char *str_2)
{
    char *str = str_1;
    while (*str_1++ != '\0');
    --str_1;

    while (*str_2 != '\0')
    {
        *str_1++ = *str_2++;
    }

    *str_1= '\0';

    return str;
}


int main(void)
{
    char str_1[30] = {"hello"};
    char str_2[30] = {"world"};

    MyStrcat(str_1, str_2);

    puts(str_1);

    return 0;
}

4. 封装函数实现strcmp功能

#include <stdio.h>

int MyStrcmp(char *str_1, char *str_2)
{
    while (*str_1 == *str_2 && *str_1 != '\0')
    {
        str_1++;
        str_2++;
    }

    return *str_1 - *str_2;
}


int main(void)
{
    char str_1[30] = {0};
    char str_2[30] = {0};
    int num = 0;

    gets(str_1);
    gets(str_2);
    
    num = MyStrcmp(str_1, str_2);

    printf("num = %d\n", num);

    return 0;
}

  • 28
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值