C语言:模拟实现strlen、strcpy、strcmp、strReverse、strcat函数

环境: Windows8,Visual Studio 2013
语言: C语言

什么是C语言里的字符串?

字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
C语言中认为以字符形式保存,以‘\0’结尾的串为字符串。

字符的ASCII编码表
ASCII
(图片来源:百度百科)


字符串函数(皆为模拟string.h文件中常用的函数)

1.字符串连接

char *mystrcat(char* des,const char* str)
{
    assert(des);
    assert(str);
    char *p = des;
    while (*p)
    {
        p++;
    }
    while (*p++ = *str++)
    {
        ;
    }
    return des;
}

2.字符串比较

//str1大返回1,两者相同返回0,str2大返回-1
int mystrcmp (const char * src, const char * dst)
{
        int ret = 0 ;

        while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *src)
                ++src, ++dst;

        if ( ret < 0 )
                ret = -1 ;
        else if ( ret > 0 )
                ret = 1 ;

        return( ret );
}

4.字符串逆置

void strRev(char *s)
{
    char temp, *end = s + strlen(s) - 1;
    while( end > s)
    {
        temp = *s;
        *s = *end;
        *end = temp;
        --end;
        ++s;
    }
}

字符串逆置更多内容
5.字符串求长

size_t mystrlen(const char *str)//字符串求长
{
    assert(str);
    int i = 0;
    while (*str != '\0')
    {
        i++;
        str++; 
    }
    return i;
}

以上是一些基本常用函数的整理,接下来我会将他们单独罗列出来进行一一详解,期待你的关注!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值